python二叉树遍历list实现_python 二叉树遍历

本文记录了作者学习二叉树遍历的过程,详细解释了二叉树的定义、满二叉树与完全二叉树的区别,并通过Python代码展示了前序、中序、后序及广度优先遍历的递归和迭代实现方式。
摘要由CSDN通过智能技术生成

这几天面试老是遇到二叉树遍历问题,之前没怎么吃透,这次尝试好好啃一下,在这记录下这次学习的过程

二叉树的定义

首先我们先来看二叉树的口述定义

二叉树是树的叶子节点的数量不大于2的树

我们就随便再看看树的口述定义

​ 树是 N (N >= 0 )个结点的有限集合,N = 0 时,称为空树,这是一种特殊情况。在任意一棵非空树中

应满足:

​ 1) 有且仅有一个特定的称为根的结点。

​ 2)当 N > 1 时,其余结点可分为 m ( m > 0)个互不相交的有限集合T1 , T2 , T3 , .... Tm ,其中每一个

​ 集合本身又是一棵树,并且称为根结点的子树。

说白了就是类似这样的

188170e47052598faf9d802813ab381c.png

二叉树说白了就是一个结点若有子节点,则节点的数量最多为2个

那我们再来复习下满二叉树和完全二叉树

满二叉树就是

一个二叉树,最下面一行的节点没有一个有子节点,其余的每个节点都有二个子节点。

直接看图

d7c001790927130b922272b06e435faf.png

完全二叉树就是

一个满二叉树,最后一行,从右向左按顺序去除任意节点后得到的树

就像这样的

9a8c6e91e94c03533e759e8726a720f2.png

满二叉树是完全二叉树的一种特殊的情况

以上是国内对二叉树和完全二叉树的定义,国外的话定义不同

我们来看看国外

f578bce827bc0d1e08656ed3d6113bea.png

第一个的字面翻译过来是满二叉树

第二个的字面完全二叉树

第三个的字面是完美二叉树

在国外定义里面,国内的满二叉树变成了完美二叉树,完全二叉树没有改变

而满二叉树,是一个节点要么有2个叶子节点,要么没有叶子节点

d92171b25b8f2cc88ed04674c38c9e92.png

二叉树的遍历

二叉树的遍历主要有以下四种:</

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值