輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值(用陣列返回)。直接能想到的方法,將鍊錶遍歷一遍,遍歷的同時將節點值壓棧,最後依次出棧。
// c++
// 使用棧實現
vectorreverseprint(listnode *head)
while (!nodes.empty())
return res;
}
// python
# 利用棧
def reverseprint2(head: listnode) -> list[int]:
stack =
node = head
while node:
node = node.next
return stack[::-1]
// c++
// 使用遞迴實現
void reverseprint2(listnode *head)
cout << head->val << endl;
}
//python
# 遞迴
def reverseprint(head: listnode) -> list[int]:
return reverseprint(head.next) + [head.val] if head else
遍歷鍊錶的同時,將鍊錶反轉
// c++
// 修改鍊錶結構
void reverseprint3(listnode *head)
while(node!=nullptr)
}
// python
def reverseprint3(head: listnode) -> list[int]:
node = head
prenode = none
nextnode = head
while nextnode:
nextnode = node.next
node.next = prenode
prenode = node
if nextnode:
node = nextnode
ret =
while node:
ret += node.val
node = node.next
return ret
劍指offer 從尾到頭列印列表
1.方法一 看到這道題的時候,我的最初想法是鍊錶翻轉,在輸出。在原書中作者認為這不是最好的解決辦法,因為這樣會改變鍊錶的原來的結構,如果在面試中遇到類似的問題,應該主動詢問面試官這樣的方發是否可行。1.方法二 鍊錶的逆序列印,首先肯定要遍歷鍊錶,可是輸出的順序卻是從尾到頭。也就是說,第乙個遍歷到的節...
劍指Offer 從尾到頭列印鍊錶
題目1511 從尾到頭列印鍊錶 時間限制 1 秒 記憶體限制 128 兆 特殊判題 否 提交 1082 解決 350 題目描述 輸入乙個鍊錶,從尾到頭列印鍊錶每個節點的值。輸入 每個輸入檔案僅包含一組測試樣例。每一組測試案例包含多行,每行乙個大於0的整數,代表乙個鍊錶的節點。第一行是鍊錶第乙個節點的...
劍指offer 從尾到頭列印鍊錶
輸入乙個鍊錶,從尾到頭列印鍊錶每個節點的值。輸入描述 輸入為鍊錶的表頭 輸出描述 輸出為需要列印的 新鍊錶 的表頭 分析 題目本意是用的棧結構的先入後出,但是有了容器類的高階方法之後,使用棧的意義就不大了。c struct listnode class solution listnode p hea...