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

2021-08-31 11:28:40 字數 1102 閱讀 2501

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

鍊錶結點定義如下:

struct listnode

;

思路一:將鍊錶中的連線指標反轉過來,改變鍊錶的方向就可以從頭到尾輸出了。不足:這樣做會改變原來鍊錶的結構。

思路二:遍歷鍊錶,遍歷順序是從頭到尾而輸出順序卻是從尾到頭。也就是說第乙個遍歷到的結點最後乙個輸出,可以用棧實現。每當遍歷到乙個結點的時候,將該結點入棧。鍊錶遍歷結束後再從棧頂開始逐個輸出結點的值。

思路三:用遞迴來實現。每訪問到乙個結點的時候,先遞迴輸出它後面的結點在輸出自己本身,這樣鍊錶的輸出結果就反過來了。

思路二**:

#include #include #include using namespace std;

struct listnode

;listnode *createlist()

else

ptail = ptemp;

cin >> nnum;

} return phead;

}void printlistreversingly_iteratively(listnode* phead)

while(!nodes.empty())

}int main()

思路三**:

#include #include using namespace std;

struct listnode

;listnode *createlist()

else

ptail = ptemp;

cin >> nnum;

} return phead;

}void printlistreversingly_iteratively(listnode* phead)

cout << phead->m_nkey << endl;

}}void print(listnode *phead)

}int main()

劍指Offer刷題筆記 從頭到尾列印列表

輸入乙個鍊錶,按煉錶值從尾到頭的順序返回乙個arraylist。lis oe 這個類儲存的是鍊錶中的乙個節點,它的val屬性儲存的是本節點的值,next屬性儲存的它連線的下乙個節點 下乙個節點同樣是乙個同樣格式的類 coding utf 8 class listnode def init self,...

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

輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值 用陣列返回 示例 1 輸入 head 1,3,2 輸出 2,3,1 th 逆序列印 我們可以將鍊錶loop一遍,push到棧中。然後pop出 因為棧是先進後出 所有最後順序就是逆序的順序。這裡建議push最好是val push node的話 占用...

劍指offer系列0 替換空格 從頭到尾列印鍊錶

這是最前面的幾個題,我之前寫在github上了,現在為了統一補回來。面試題4 替換空格 字串的名字是乙個指標變數,裡面存的內容是其第乙個字元的位址。如字串a 10 則 a,a得到的均相同,都是a陣列的第乙個元素的位址。1 include2 using namespace std 3class sol...