Leetcode刷題07 二叉樹的層序遍歷

2021-10-06 15:46:21 字數 925 閱讀 8000

給你乙個二叉樹,請你返回其按 層序遍歷 得到的節點值。 (即逐層地,從左到右訪問所有節點)。

示例:

二叉樹:[3,9,20,null,null,15,7],

3/ \

9 20

/ \

15 7

返回其層次遍歷結果:

[ [3],

[9,20],

[15,7]

]

我的解法:

def levelorder(self, root: treenode) -> list[list[int]]:

if not root :

return

arr , res = [root],

while arr:

temp =

temp_res =

for node in arr:

arr = temp

return res

廣度優先遍歷,但是很明顯,這個寫法的記憶體消耗很是嚴重啊。優化方法暫時還沒想到,看到的很多寫法都和這個類似,區別在於部分使用到了佇列來實現,但是跑下來效果沒差,hmmmm,優化方法暫且放到一邊,待日後再整。

貼一波使用佇列的方法:

def levelorder(self, root):

queue = collections.deque()

res =

while queue:

size = len(queue)

level =

for _ in range(size):

cur = queue.popleft()

if not cur:

continue

if level:

return res

leetcode刷題python之二叉樹的層次遍歷

題目 給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層次遍歷結果 3 9,20 15,7 definition for a binary tree node.class treen...

leetcode刷題筆記 二叉樹5

給定乙個不含重複元素的整數陣列。乙個以此陣列構建的最大二叉樹定義如下 二叉樹的根是陣列中的最大元素。左子樹是通過陣列中最大值左邊部分構造出的最大二叉樹。右子樹是通過陣列中最大值右邊部分構造出的最大二叉樹。通過給定的陣列構建最大二叉樹,並且輸出這個樹的根節點。輸入 3,2,1,6,0,5 輸出 返回下...

leetcode刷題筆記 二叉樹6

根據一棵樹的前序遍歷與中序遍歷構造二叉樹。注意 你可以假設樹中沒有重複的元素。例如,給出 前序遍歷 preorder 3 9,20 15,7 中序遍歷 inorder 9 3,15 20,7 返回如下的二叉樹 3 9 20 157這是我們資料結構學習二叉樹必考的題型之一,但我們這次需要程式設計做出,...