演算法訓練 劍指offer 06 從尾到頭列印鍊錶

2022-09-19 10:18:08 字數 1408 閱讀 1187

從尾到頭列印鍊錶

輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值(用陣列返回)。

示例 1:

輸入:head = [1,3,2]

輸出:[2,3,1]

def reverseprint(self, head: listnode) -> list[int]:

returnarr = # 返回陣列

while head.next: # 當存在next節點時,繼續迴圈

head = head.next

return returnarr[::-1] # 逆序

這樣寫的話尾節點的值將被捨棄

def reverseprint(self, head: listnode) -> list[int]:

returnarr = # 返回陣列

while head.next: # 當存在next節點時,繼續迴圈

head = head.next

if head.val:

return returnarr[::-1] # 逆序

while中的head.next預設了傳入鍊錶不為空,導致為空時報錯

def reverseprint(self, head: listnode) -> list[int]:

returnarr = # 返回陣列

# 如果head為空則直接返回空陣列

if head is none:

return returnarr

else:

while head.next: # 當存在next節點時,繼續迴圈

head = head.next

if head.val:

return returnarr[::-1] # 逆序

還是不行,因為if(0)為false,當尾節點的值為0時,會跳過

class listnode:

def __init__(self, x):

self.val = x

self.next = none

class solution:

def reverseprint(self, head: listnode) -> list[int]:

returnarr = # 返回陣列

# 如果head為空則直接返回空陣列

if head is none:

return returnarr

else:

while head.next: # 當存在next節點時,繼續迴圈

head = head.next

return returnarr[::-1] # 逆序

劍指offer06 從尾到頭列印鍊錶

題目 從尾到頭列印鍊錶 思路 1,注意傳入函式的是指向煉表頭的指標,在函式中不應該直接使用這個指標,而是應該用乙個指標的臨時變數來遍歷鍊錶 2,方法一 使用棧來實現 3,方法二 遞迴在本質上就是乙個棧結構,所以也可以用遞迴來實現 solution include include include us...

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

輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值 用陣列返回 示例 1 輸入 head 1,3,2 輸出 2,3,1 限制 0 鍊錶長度 10000 鍊錶特點 只能從前至後訪問每個節點。題目要求 倒序輸出節點值。這種先入後出的需求可以借助棧來實現。通過linkedlist類來實現棧 入棧 遍歷鍊...

劍指 Offer 06 從尾到頭列印鍊錶

題目描述 輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值 用陣列返回 解題思路 1 在不允許修改鍊錶的結構的條件下,採用棧輔助 2 新建乙個棧,stackstack new stack 將鍊錶的節點依次壓入棧中 新開乙個陣列,int print new int size 用來儲存從棧中彈出的值...