二叉樹的層次遍歷 CodingPark程式設計公園

2021-10-14 16:42:06 字數 1017 閱讀 9974

二叉樹的層次遍歷即從上往下、從左至右依次列印樹的節點。

其思路就是將二叉樹的節點加入佇列,出隊的同時將其非空左右孩子依次入隊,出隊到隊列為空即完成遍歷。

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

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution

:# 返回從上到下每個節點值列表,例:[1,2,3]

defprintfromtoptobottom

(self, root)

:# write code here

outlist=

queue=

[root]

while queue!=

and root:0]

.val)

if queue[0]

.left!=

none:0

].left)

if queue[0]

.right!=

none:0

].right)

queue.pop(0)

return outlist

list_1.pop(

)# pop最後乙個元素

list_2.pop(0)

# pop第乙個元素

# 耗時

pop():

14.317937

pop(0)

:22.216176

從結果可以看出,pop最後乙個元素的效率遠遠高於pop第乙個元素

層次遍歷二叉樹

問題 假定根節點位於第0層 1.層次遍歷二叉樹 每層換行分開 2.層次遍歷二叉樹指定的某層 本文 例如 上圖中1.123 4567 82.第三層 78可以看出得出第二問的解,第一問迎刃而解了,所以從問題二下手 1.層次遍歷二叉樹指定的某層 可以得出這樣的乙個結論 遍歷二叉樹的第k層,相當於遍歷二叉樹...

二叉樹層次遍歷

題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。思路 二叉樹的層次遍歷,利用棧的先進後出的特性。struct treenode class solution res.push back temp while m.empty m中是從左往右入棧,這裡把它反過來,s中是從右往左...

二叉樹層次遍歷

層次遍歷二叉樹,每一次儲存在list中,結果按從葉子層到根,從左到右的順序儲存 一 class solution return lists 相當於在先序的基礎上改進,level是每個node所在的層次。如果lists大小和level相等,說明開始新一層的儲存。如果不等,則直接把值存入相應層次的lis...