二叉树的左,右视图(python)实现

前面以及说了二叉树的创建以及先序,中序,后序,层次遍历的方法,见本文,下面我们来说说实现二叉树的左,右视图。
把至于左右视图是什么,我想小学生都懂,下面直接上案例:

                a

            b        c

        #    e   f     #
        
     #   # g  h #  # #   #

如上面的二叉树,左视图应该为a,b,e,g;右视图应该为a,c f,h。
那怎样代码实现呢,其实相当简单,只需要在之前的层次遍历的方法上稍微做修改就可以了。
在层次遍历中,左视图只要取每层的第一个节点的值,右视图只要取出每层最后一个结点即可,注,按照上面的树建立的话,就是第一个或最后一个非“#”结点,“#”表示空节点。
那么,下面就来实现:
实现左视图:

# 定义二叉树的结点
class binary_tree_node():
    #初始化
    def __init__(self,data):
        self.data = data
        self.left = None
        self.right = None

    def has_value(self,value):
        if self.data == value:
            return True
        else:
            return False

# 定义二叉树
class binary_tree():
    #初始化
    def __init__(self):
        self.root = None

    #创建树
    def add_node(self,new_node):
        #判断新添加结点是否为二叉树结点对象,如果是,进行添加操作,如果不是,转化为二叉树结点对象再进行添加操作
        if not isinstance
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值