連結串列反轉非遞迴演算法!看不懂打死我!
演算法使用三個指標實現,每次迴圈將反轉pre和head指向的節點
- pre:指向前一個節點,原頭節點的前一個節點(反轉後最後一個節點的下一個節點)為null,所以初始化pre=null
- head:指向當前節點,head為null時,迴圈結束
- next:儲存head的下一個節點,因為在調整head和pre之間的關係時,
head.next=pre
,所以原head.next需要存起來,不然下次迴圈就找不到了
上程式碼
public static Node reverse(Node head){
Node pre = null;
Node next = null;
while (head != null) {
next = head.next;
head.next = pre;
pre = head;
head = next;
}
return pre;
}
相關文章
- 反轉連結串列(遞迴與棧)遞迴
- 反轉連結串列系列題練習遞迴遞迴
- 實現反轉連結串列--遞迴、迭代、雙指標、棧遞迴指標
- 連結串列與遞迴遞迴
- 資料結構與演算法——歸併排序: 陣列&連結串列&遞迴&非遞迴解法全家桶資料結構演算法排序陣列遞迴
- 反轉連結串列
- Python實現連結串列反轉的方法【迭代法與遞迴法】Python遞迴
- 一文讀懂連結串列反轉(迭代法和遞迴法)遞迴
- #反轉連結串列_C++版 #反轉連結串列_Java版 @FDDLCC++Java
- 利用遞迴方法實現連結串列反轉、前N個節點反轉以及中間部分節點反轉遞迴
- 1025 反轉連結串列
- 264反轉連結串列
- leetcode 反轉連結串列LeetCode
- 每日演算法隨筆:反轉連結串列演算法
- leetcode 92 反轉連結串列ⅡLeetCode
- 連結串列反轉問題
- 206. 反轉連結串列
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- 演算法題:反轉一個單連結串列&判斷連結串列是否有環演算法
- 資料結構之連結串列:206. 反轉連結串列資料結構
- 反轉連結串列、合併連結串列、樹的子結構
- 【演算法題】反轉連結串列的兩種方法演算法
- TypeScript 實現連結串列反轉TypeScript
- 反轉一個單連結串列。
- leetcode206. 反轉連結串列LeetCode
- 反轉連結串列系列問題
- java實現連結串列反轉Java
- leetcode 206.反轉連結串列LeetCode
- [leetcode 92] 反轉連結串列 IILeetCode
- leetcode 206. 反轉連結串列LeetCode
- JZ-015-反轉連結串列
- 連結串列-迴圈連結串列
- Golang從合併連結串列聊遞迴Golang遞迴
- 資料結構和演算法——Go實現單連結串列並且反轉單連結串列資料結構演算法Go
- Java資料結構和演算法(六)—演算法—反轉連結串列Java資料結構演算法
- **203.移除連結串列元素****707.設計連結串列****206.反轉連結串列**
- LeetCode-Python-(206)反轉連結串列LeetCodePython
- 反轉相鄰連結串列單元