zoukankan      html  css  js  c++  java
  • 二叉树的左视图和右视图

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

    根据前序遍历算法思想,在左视图代码中先遍历左子树在遍历左子树,这样在判断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)
  • 相关阅读:
    PRTG安装
    如何诊断windows性能问题
    windows性能监控
    PAM 認 證 模 組
    RHEL磁盘修复
    RHEL下修改市区
    Recover database using backup controlfile until cancel
    Cancel-Based Recovery
    北京、上海的人口并不多
    swoole中http_server的配置与使用
  • 原文地址:https://www.cnblogs.com/relaxgirl/p/9662650.html
Copyright © 2011-2022 走看看