從尾到頭列印單鏈表(百度面試題)

2021-10-08 13:33:33 字數 500 閱讀 6262

思路:

方式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 可以利用棧這個資料結構,將各結點壓入棧中,然後利用棧的先進後出的特點,就實現了逆序列印的效果 可以利用棧這個資料結構,將各個節點壓入到棧中,然後利用棧的先進後出的特點,就實現了...

從尾到頭列印單鏈表

由於單鏈表只能從按單個方向訪問下乙個節點,而不能訪問前乙個節點。首先,解決這個問題肯定要遍歷鍊錶。遍歷的順序是從頭到尾的順序,可輸出的順序卻是從尾到頭。也就是說第乙個遍歷到的結點最後乙個輸出,而最後乙個遍歷到得結點第乙個輸出。這就是典型的 後進先出 可以用 棧實現這種順序。實現程式過程 每經過乙個結...