/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
//新链表暂时指向一个null,不能直接和head重合,这样head往下走,newList 也往下走,
//当head为空,newList也就指向了最后一个节点
ListNode newList = null;
//用来暂存newList移动到下一个节点前的值
ListNode pre = newList;
while(head != null){
pre = newList;
newList = head;
head = head.next;
newList.next = pre;
}
return newList;
}
}
总结:newList 和 head 同步向前移动,然后newList 的指针不断指向上一个值。最后一个值是head指向null,而newList指向3