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

2021-10-08 19:06:03 字數 998 閱讀 7158

/**

* definition for singly-linked list.

* struct listnode

* };

*/class

solution

reverse

(result.

begin()

,result.

end())

;return result;}}

;

但是每次在vector的頭部插入資料特別耗時

而方法乙隻需要4ms

class

solution

//nodes出棧操作,棧不為空就一直pop

listnode* pnode;

while

(!nodes.

empty()

)return result;}}

;

遞迴在本質上就是乙個棧結構,每次訪問乙個節點的時候,

先遞迴訪問輸出後面的節點,在輸出該節點本身,這樣就實現了翻轉。

class

solution

private

: vector<

int> result;

void

reverseprintlist_recursive

(listnode* head)

result.

push_back

(head-

>val);}}};

問題:當鍊表非常長的時候,函式呼叫的層級很深,可能導致函式調動棧溢位。

所以用棧實現的**魯棒性會更好!

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

題目見書 劍指offer 58頁 程式設計思路,鍊錶資料用棧儲存,利用棧先進後出的性質列印鍊錶。面試題6 從尾到頭列印鍊錶 include include includeusing namespace std 單項鍊表的結點定義 struct listnode 用棧來實現 void printlis...

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

輸入乙個鍊錶,按煉錶值從尾到頭的順序返回乙個vector。現將鍊錶反轉,然後在從頭到尾輸出。但這種方法會改變原來鍊錶的結構。時間複雜度 空間複雜度 遍歷鍊錶的順序是從頭到尾,輸出的順序是從尾到頭。也就是說,第乙個遍歷到的節點最後乙個輸出,最後乙個遍歷到的節點第乙個輸出。這就是典型的 後進先出 可以用...

劍指Offer 面試題6(從尾到頭列印鍊錶)

人生在世,會遇到一些好事,也會遇到些壞事,好事承擔得起,壞事也得承得住,就這樣坦蕩蕩做個尋常人也不壞!王小波 盛裝舞步 題目描述 輸入乙個鍊錶的頭結點,從尾到頭反過來列印出每個結點的值。示例 include utilities list.h include void printlistreversi...