思路:
方式1、先將單鏈表反轉,然後遍歷,這樣做的問題會破壞單鏈表的結構
方式2、利用棧這個資料結構,**將各個節點壓入棧中,然後利用棧的先進後出特點。**棧就像乙個彈夾
核心**
// 方式2、利用棧這個資料結構,**將各個節點壓入棧中,然後利用棧的先進後出特點。
// **棧就像乙個彈夾
public static
void
reverseprint
(heronode head)
// 建立乙個棧,將各個節點壓入棧中
stack stack = new stack()
; heronode cur = head.next;
while
(cur != null)
// 將節點從棧中pop出
while
(stack.
size()
>0)
}
鏈表面試題 從尾到頭列印單鏈表
題目 輸入乙個鍊錶的頭結點,從尾到頭列印單鏈表 鍊錶結點的定義 struct linknode 方法一 遞迴實現 void printlisttailtohead struct listnode head printf d n head val 我們知道遞迴也是一種棧結構,通過分析子問題,找到遞迴出...
演算法題 從尾到頭列印單鏈表(新浪面試題)
從尾到頭列印單鏈表 逆序列印單鏈表 方式1 先將單鏈表進行反轉操作,然後再遍歷,這樣的話會破壞單鏈表的結構,不建議 方式2 可以利用棧這個資料結構,將各結點壓入棧中,然後利用棧的先進後出的特點,就實現了逆序列印的效果 可以利用棧這個資料結構,將各個節點壓入到棧中,然後利用棧的先進後出的特點,就實現了...
從尾到頭列印單鏈表
由於單鏈表只能從按單個方向訪問下乙個節點,而不能訪問前乙個節點。首先,解決這個問題肯定要遍歷鍊錶。遍歷的順序是從頭到尾的順序,可輸出的順序卻是從尾到頭。也就是說第乙個遍歷到的結點最後乙個輸出,而最後乙個遍歷到得結點第乙個輸出。這就是典型的 後進先出 可以用 棧實現這種順序。實現程式過程 每經過乙個結...