實現過程:
line 9-11是將原鍊錶的第乙個節點變成了新鍊錶的最後乙個節點,同時將原鍊錶的第二個節點儲存在cur中
line13-16就是從原鍊錶的第二個節點開始遍歷到最後乙個節點,將所有節點翻轉一遍
以翻轉第二個節點為例
temp = cur.next是將cur的下乙個節點儲存在temp中,也就是第節點3,因為翻轉後,節點2的下乙個節點變成了節點1,原先節點2和節點3之間的連線斷開,通過節點2就找不到節點3了,因此需要儲存
cur.next = pre就是將節點2的下乙個節點指向了節點1
然後pre向後移動到原先cur的位置,cur也向後移動乙個節點,也就是pre = cur ,cur =temp
這就為翻轉節點3做好了準備
def rev
er(link):
pre = link
cur = pre.next
pre.next=none #把第乙個變成最後乙個
while cur:
temp = cur.next
cur.next=pre
pre=cur
cur=temp #把第二個變成倒數
return pre
鍊錶 反轉鍊錶
問題 兩兩交換鍊錶中的節點 問題 k 個一組翻轉鍊錶 問題鏈結 利用棧先進後出的特性,遍歷鍊錶,將每個結點加入棧中,最後進行出棧操作,先出棧的結點指向臨近的後出棧的結點。definition for singly linked list.struct listnode class solution ...
反轉鍊錶與分組反轉鍊錶
經典的反轉鍊錶,先上 public class listnode public class printlist system.out.println public class reverse public listnode reverse listnode root listnode pre nul...
鍊錶 鍊錶反轉I
package com.hnust.reversal public class listnode public listnode int value,listnode next override public string tostring 我們可以通過把鍊錶中鏈結節點的指標反轉過來,從而改變鍊錶的...