1. 程式人生 > 其它 >二叉樹的層次遍歷_CodingPark程式設計公園

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

技術標籤:leetcode基本功二叉樹

二叉樹的層次遍歷

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

# -*- 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第一個元素

在這裡插入圖片描述