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

2021-09-26 18:26:09 字數 811 閱讀 7521

人生在世,會遇到一些好事,也會遇到些壞事,好事承擔得起,壞事也得承得住,就這樣坦蕩蕩做個尋常人也不壞!——王小波《盛裝舞步》

題目描述

輸入乙個鍊錶的頭結點,從尾到頭反過來列印出每個結點的值。

示例**

#include

"..\utilities\list.h"

#include

void

printlistreversingly_iteratively

(listnode* phead)

while

(!nodes.

empty()

)}void

printlistreversingly_recursively

(listnode* phead)

printf

("%d\t"

, phead-

>m_nvalue);}

}// ********************測試**********************

void

test

(listnode* phead)

// 1->2->3->4->5

void

test1()

// 只有乙個結點的鍊錶: 1

void

test2()

// 空鍊錶

void

test3()

intmain

(int argc,

char

* ar**)

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

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

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

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

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

鍊錶結點的定義如下 struct listnode在面試的時候,我們需要詢問一下面試官能不能改變鍊錶的結構,問清楚要求之後再進行作答。這裡假設是不改變鍊錶的結構,那麼我們需要遍歷這個鍊錶再進行輸出,注意到倒著列印鍊錶相當於先遍歷的結點要後輸出,後遍歷的結點要先輸出。這和棧的邏輯是一樣的。所以這道題可...