leetcode 107 二叉樹的層次遍歷 II

2021-08-21 16:38:34 字數 1218 閱讀 8102

【前言】

python刷leetcode題解答目錄索引:

【正文】

給定乙個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷)

例如:給定二叉樹[3,9,20,null,null,15,7],

3

/ \9 20

/ \

15 7

返回其自底向上的層次遍歷為:

[

[15,7],

[9,20],

[3]]

# definition for a binary tree node.

# class treenode(object):

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class solution(object):

def levelorderbottom(self, root):

""":type root: treenode

:rtype: list[list[int]]

"""#bfs廣度優先搜尋,不熟悉可以網上參考bfs**

if not root:

return #為空則返回空列表

queue=[root]#使用列表實現佇列的功能,首先儲存root

res=

while queue:#當queue不為空時

nodes=#存節點,每次迴圈前置空,每次只裝一部分

node_values=#存節點的值

for node in queue:

if node.left:

if node.right:

node_values+=[node.val]#因為每次迴圈node_values都會置空,所以最終結果儲存在res裡,node_values只是一小部分結果

res=[node_values]+res#實現從底到頂,node_values放前面.

queue=nodes#將新新增的節點重新賦值給queue

return res

LeetCode 107 二叉樹的層次遍歷

題目描述 給定乙個二叉樹,返回其節點值自底向上的層次遍歷。即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回其自底向上的層次遍歷為 15,7 9,20 3 解題思路 此題跟102基本一樣,就是在輸出時是自底...

leetCode 107 二叉樹層次遍歷II

按層次從頂至下遍歷,將每層結點加在佇列尾部,每次從頭部取出一層結點。使用棧將結果反轉。definition for a binary tree node.public class treenode class solution if root.right null stack.push temp 棧...

leetcode 107 二叉樹的層次遍歷 II

給定乙個二叉樹,返回其節點值自底向上的層次遍歷。即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其自底向上的層次遍歷為 15,7 9,20 3 1 definition for a binary tre...