題目:輸入乙個鍊錶的頭結點,從尾到頭反過來列印出每個結點的值。
鍊錶結點定義如下:
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...