《劍指Offer》JZ3 從尾到頭列印鍊錶

2021-10-11 01:56:03 字數 1117 閱讀 6370

本系列文章為《劍指offer》刷題筆記。

刷題平台:牛客網

思路

【python】頭插法

對於python來講,我們可以直接使用列表的插入方法,每次插入資料,只插入在首位。

# -*- coding:utf-8 -*-

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class

solution

:# 返回從尾部到頭部的列表值序列,例如[1,2,3]

【c】通常,這種情況下,我們不希望修改原鍊錶的結構。返回乙個反序的鍊錶,這就是經典的「後進先出」,我們可以使用棧實現這種順序。每經過乙個結點的時候,把該結點放到乙個棧中。當遍歷完整個鍊錶後,再從棧頂開始逐個輸出結點的值,給乙個新的鍊錶結構,這樣鍊錶就實現了反轉。

/**

* struct listnode

* };

*/class

solution

while

(!nodes.

empty()

)return result;}}

;

參考 

劍指offer 從尾到頭列印列表

1.方法一 看到這道題的時候,我的最初想法是鍊錶翻轉,在輸出。在原書中作者認為這不是最好的解決辦法,因為這樣會改變鍊錶的原來的結構,如果在面試中遇到類似的問題,應該主動詢問面試官這樣的方發是否可行。1.方法二 鍊錶的逆序列印,首先肯定要遍歷鍊錶,可是輸出的順序卻是從尾到頭。也就是說,第乙個遍歷到的節...

劍指offer(3) 從尾到頭列印鍊錶

輸入乙個鍊錶,從尾到頭列印鍊錶每個節點的值。輸入為鍊錶的表頭 輸出為需要列印的 新鍊錶 的表頭 鍊錶是一種動態資料結構,是因為在建立鍊錶時,無須知道鍊錶的長度。當插入乙個結點時,我們只需要為新結點分配記憶體,然後調整指標的指向來確保新結點被鏈結到鍊錶中。記憶體分配不是在建立鍊錶時一次性完成,而是每新...

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

coding utf 8 class listnode def init self,x self.val x self.next none class solution 返回從尾部到頭部的列表值序列,例如 1,2,3 def init self self.result def printlistfr...