劍指 offer 06. 從尾到頭列印鍊錶
題目描述;
輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值(用陣列返回)。
示例:
輸入:head = [1,3,2]
輸出:[2,3,1]
# solo
# definition for singly-linked list.
# class listnode:
# def __init__(self, x):
# self.val = x
# self.next = none
class solution:
def reverseprint(self, head: listnode) -> list[int]:
li =
while head:
li.insert(0, head.val)
head = head.next
return li
遞推階段: 每次傳入 head.next ,以 head == none(即走過鍊錶尾部節點)為遞迴終止條件,此時返回空列表 。
回溯階段: 利用 python 語言特性,遞迴回溯時每次返回 當前 list + 當前節點值 [head.val] ,即可實現節點的倒序輸出。
一行**解決問題 。
class solution:
def reverseprint(self, head: listnode) -> list[int]:
return self.reverseprint(head.next) + [head.val] if head else
解題思路:
鍊錶特點:只能從前至後訪問每個節點。
題目要求:倒序輸出節點值。
這種先入後出的需求可以借助棧來實現。
(python中list就可以實現棧功能)
class solution:
def reverseprint(self, head: listnode) -> list[int]:
stack =
while head:
head = head.next
return stack[::-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 用來儲存從棧中彈出的值...