单链表反转
Posted liumilk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单链表反转相关的知识,希望对你有一定的参考价值。
递归方法:
public Node reverse(Node head) { if (head == null || head.next == null) return head; Node temp = head.next; Node newHead = reverse(head.next); temp.next = head; head.next = null; return newHead; } //总体来说,递归法是从最后一个Node开始,在弹栈的过程中将指针顺序置换的。
遍历方法:
public static Node reverseList(Node node) { Node pre = null; Node next = null; while (node != null) { next = node.next; node.next = pre; pre = node; node = next; } return pre; } //先将下一节点纪录下来,然后让当前节点指向上一节点,再将当前节点纪录下来,再让下一节点变为当前节点。
以上是关于单链表反转的主要内容,如果未能解决你的问题,请参考以下文章