假设有这样一个链表
要想使链表反转,可以定义一个空节点
有一个节点 cur 让他等于头结点
如果反转链表那么头结点就指向null
可以再定义一个节点prev;
让cur.next = prev,但是这样会找不到节点222;
所以再定义一个节点curNext来保存原先的cur.next
curNext = cur.next;
cur.next = prev
然后让prev与cur都向前各走一步
prev = cur;
cur = curNext;
这样就可以让链表的方向变为反方向。
代码如下:
public ListNode reverseList(){
if(this.head==null){
return null;
}
ListNode cur = this.head;
ListNode prev = null;
ListNode curNext=null;
while(cur!=null){
curNext = cur.next;
cur.next = prev;
prev = cur;
cur = curNext;
}
this.head = prev;
return prev;
}