從上往下列印出二叉樹的每個節點,同層節點從左至右列印。
借助佇列。從根節點開始,依次將節點入佇列,判斷是否有孩子節點,然後將孩子節點入佇列,同時將該節點出佇列。
# -*- 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
out_list =
queue = [root]
while queue and root:
if queue[0].left:
if queue[0].right:
queue.pop(0)
return out_list
劍指offer 二叉樹的層次遍歷
題目 從上往下列印出二叉樹的每個節點,同層節點從左至右列印。解題思路 建立乙個佇列,先將二叉樹的根節點放入佇列中,然後開始迴圈,只要佇列不為空,獲取佇列的第乙個元素,將其儲存為乙個節點tmp,接著將其push back到新陣列裡面,然後判斷其左孩子是否為空,若其不為空,將其push到佇列中,然後再繼...
劍指offer 二叉樹遍歷
deque佇列 deque佇列 給定一棵二叉搜尋樹,請找出其中第k大的節點。二叉搜尋樹本身就有規律 左子樹比根節點小,右子樹比根節點大 二叉搜尋樹的中序遍歷為 遞增序列 中序遍歷的倒序 判斷 defkthlargest self,root treenode,k int int defhelper r...
劍指offer 二叉樹的後序遍歷
思路 對於乙個二叉樹的後序遍歷序列來說,最後乙個數一定是根節點,然後前面的數中,從最開始到第乙個大於根節點的數都是左子樹中的數,而後面到倒數第二個數應該都是大於根節點的,是右子樹,如果後面的數中有小於根節點的,那麼說明這個序列不是二叉搜尋樹的後序遍歷序列。public class judgehoux...