想要反转链表,只有一个头节点。
1. 要有个指针保证可以往后移,来循环整个链表
2. 想反转 A -> B -> C -> null 要先有个空把A指向空,B再指向A
所以一共需要3个节点, 当前节点,当前节点的左边节点(和当前节点一起 负责反转),当前节点的右边节点(负责往后遍历)
class Solution {
public ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode curr = head;
while(curr!=null){
ListNode n = curr.next;
curr.next = prev;
prev = curr;
curr = n;
}
return prev;
}
}