反转链表,输出反转后的链表头节点
基本思路是依次改变指针指向,注意只有头结点的处理,以及遇到尾节点的处理。
public static Node reverse(Node head) {
if (head == null)
return null;
Node curr = head;
Node pre = null;
Node next = null;
while (curr != null) {
next = curr.next;
curr.next = pre;
pre = curr;
curr = next;
}
return pre;
}