二叉樹的層次遍歷_CodingPark程式設計公園
阿新 • • 發佈:2021-01-25
二叉樹的層次遍歷
二叉樹的層次遍歷即從上往下、從左至右依次列印樹的節點。
其思路就是將二叉樹的節點加入佇列,出隊的同時將其非空左右孩子依次入隊,出隊到佇列為空即完成遍歷。
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# 返回從上到下每個節點值列表,例:[1,2,3]
def PrintFromTopToBottom(self, root):
# write code here
outList=[]
queue=[root]
while queue!=[] and root:
outList.append(queue[0].val)
if queue[0].left!=None:
queue.append(queue[0].left)
if queue[0].right!=None:
queue. append(queue[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第一個元素