二叉树的左视图和右视图


所谓二叉树的左视图,是指打印从左方向看到的二叉树。

根据前序遍历算法思想,在左视图代码中先遍历左子树在遍历左子树,这样在判断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