《劍指offer》 面試題06 從尾到頭列印鍊錶

2021-10-06 18:33:12 字數 1149 閱讀 7757

輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值(用陣列返回)。

示例 1:

輸入:head = [1,3,2]

輸出:[2,3,1]

限制:0 <= 鍊錶長度 <= 10000

四種種解法:reverse反轉法、堆疊法、遞迴法、改變鍊錶結構法

reverse反轉法

vector<

int> res;

while

(head)

//使用algorithm演算法中的reverse反轉res

reverse

(res.

begin()

,res.

end())

;return res

堆疊法

//借助資料結構棧實現

vector<

int> res;

stack<

int> s;

//入棧

while

(head)

//出棧

while

(!s.

empty()

)return res;

遞迴法

//利用遞迴回溯實現

//自定義函式

vector<

int> res;

if(head ==

nullptr

)return res;

reverseprint

(head-

>next)

; res.

push_back

(head-

>val)

;return res;

改變鍊錶結構法

//方法4:改變鍊錶結構

vector<

int> res;

listnode *pre =

nullptr

; listnode *next = head;

listnode *cur = head;

while

(cur)

while

(pre)

return res;

劍指offer面試題06 從尾到頭列印鍊錶

遍歷鍊錶到陣列 然後反轉後返回即可 date 2020 03 10 22 00 param param head return return int author wwh description 2020年03月10日21 50 33 2020年03月10日22 00 48 面試題06.從尾到頭列印...

劍指offer 面試題06 從尾到頭列印鍊錶

題目描述 輸入乙個鍊錶,按鍊錶從尾到頭的順序返回乙個arraylist。牛客網思路 開乙個stl中的棧資料結構 從頭開始遍歷將鍊錶節點入棧 邊出棧邊將值儲存進入 vector 陣列中 vector int printlistfromtailtohead listnode head vector in...

劍指Offer 面試題06從尾到頭列印鍊錶

劍指offer面試題彙總 題目描述 輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值 用陣列返回 輸入輸出 輸入 head 1,3,2 輸出 2,3,1 解決方案 使用棧來解決輸出的放入棧中,然後反向輸出 public static int reverseprint listnode head ...