public class ListNode {
public int value;
public ListNode next;
public ListNode(int value) {
this.value = value;
}
}
public ListNode reverse(ListNode head) {
ListNode previous = null;
ListNode current = head;
while (current != null) {
ListNode nextTemp = current.next;
current.next = previous;
previous = current;
current = nextTemp;
}
return previous;
}
简单说下思路:
假设链表为1->2->3->4,反转后成4->3->2->1;可以从头结点开始遍历,用current表示当前结点,previous表示当前结点的上一个结点,nextTemp表示当前结点的下一个结点,然后将当前结点的next指向其上一个结点就行了。