方法一:
思路:定义三个变量(prev cur curNext)的逆置过程
代码:
public Node reverseList(){
Node cur=head;
Node prev=null;
Node newHead=null;
while(cur!=null){
Node curNext=cur.next;
if(curNext==null){
newHead=cur;
}
cur.next=prev;
prev=cur;
cur=curNext;
}
return newHead;
}
方法二:
思路:定义新的头节点,使用头插法
代码:
public void reverseList2(){
Node cur=head;
Node newHead=new Node(-1);
while(cur!=null){
if(newHead.next==null){
//第一次头插
newHead.next=cur;
cur=cur.next;
}else{
Node curNext=cur.next;
cur.next=newHead.next;
newHead.next=cur;
cur=curNext;
}
}
return newHead.next;
}