二叉樹的左視圖和右視圖


所謂二叉樹的左視圖,是指打印從左方向看到的二叉樹。

根據前序遍歷算法思想,在左視圖代碼中先遍歷左子樹在遍歷左子樹,這樣在判斷level == len(stack)時,先遍歷左子樹則保證層數與數組長度相等時遍歷的是每一層的第一個節點

同理,在右視圖中,在判斷level == len(stack)時,先遍歷右子樹保證層數與數組長度相等時遍歷的是每一層的最后一個節點

 

def view(root):
    if root == None: return level = 0 stack = [] #rightview(root,stack,level)  leftview(root,stack,level) print stack #二叉樹左視圖 #打印每一層的第一個節點 def leftview(root,stack,level): if root == None: return if level == len(stack): #判斷是不是每一層的第一個節點  stack.append(root.value) leftview(root.left,stack,level+1) leftview(root.right,stack,level+1) #二叉樹右視圖 #打印每一層的最后一個節點 def rightview(root,stack,level): if root == None: return if level == len(stack): #判斷是不是每一層的最后一個節點  stack.append(root.value) rightview(root.right,stack,level+1) rightview(root.left,stack,level+1)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM