需要記錄原煉表中三個連續的結點:reverse/first/second。
在每輪迭代中,從原煉表中提取結點first並將它插入到逆鍊錶的開頭。
同時需要一直保持first指向原煉表中所有剩餘結點的首節點,second指向原煉表中所有剩餘結點的第二個結點,reverse指向結果鍊錶中的首結點。
public node reverse
(node x)
return reverse;
}
在編寫和鍊錶相關的**時,必須小心處理異常情況(鍊錶為空或者只有乙個或者兩個節點)和邊界情況。
假設鍊錶含有n個結點,我們先遞迴顛倒最後n-1個結點,然後小心地將原煉表中的首結點插入到結果鍊錶的末端。
public node reverse
(node first)
注:遞迴太抽象,看不懂
ps:《演算法》第四版104頁
反轉鍊錶Java
題目 定義乙個鍊錶,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出反轉後鍊錶的頭結點。思路 反轉鍊錶時,為了保證鍊錶不斷開,需要儲存三個引用,指向前一結點的引用,當前結點的引用,指向後一結點的引用。反轉鍊錶 public static listnode reverselist listnode head r...
java之鍊錶反轉
題目 定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出反轉後的頭節點,鍊錶的定義如下 class lnode public lnode int value public lnode int value,lnode next 反轉的 package linklist public class re...
java實現鍊錶反轉
完整 及詳細的注釋如下 package com.dhasa.test company dhasa author dl public class linkedlistdemo class linkedlist public void sethead node head 內部類node author d...