代码来自Java程序员面试笔试宝典
主要思想:
pre cur next三个节点
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
ListNode newHead=head;
ListNode curNode=head;
ListNode preNode=null;
while(curNode!=null){
ListNode nextNode=curNode.next;
if(nextNode==null)
newHead=curNode;
curNode.next=preNode;
preNode=curNode;
curNode=nextNode;
}
return newHead;
}
}
curNode.next=perNode;这句将next反转,指向前一个节点;
然后pre和cur分别后移一个节点,进行下次循环