二叉树的遍历(前,中,后,层序)

二叉树的遍历是指从根节点出发,按照某种次序依次访问二叉树中所有节点,使得每个节点仅被访问一次
前序遍历
若二叉树为空,则空操作返回,否则先访问根节点,然后前序遍历左子树,再前序遍历右子树。
在这里插入图片描述
结果是:ABDGHCEIF
中序遍历:
若树为空,则空操作返回,否则从根节点开始(注意并不是先访问根节点),中序遍历根节点的左子树,然后访问根节点,最后中序遍历右子树
在这里插入图片描述
结果是:GDHBAEICF
后序遍历:
若树为空,则空操作返回,否则从左到右先叶子后节点的方式遍历访问左右子树,最后是访问根节点。
在这里插入图片描述
结果是:GHDBIEFCA
层序遍历
若树为空,则空操作返回,否则从树的第一层,也就是根节点开始访问,从上而下逐层遍历,同一层中,按从左到右对节点逐个访问。
在这里插入图片描述
结果是:ABCDEFGHI

有时候会碰到一种题,推导遍历结果
例如:已知一棵二叉树前序遍历为ABCDEF,中序遍历为CBAEDF,后序遍历是多少?
解析:
1.前序遍历为ABCDEF,所以根节点为A,再由中序遍历CBAEDF,可推导CB为左子树,EDF为右子树
在这里插入图片描述
2.然后前序先打印B然后C,所以B应该是A的左孩子,C不确定,但中序C在B之前,则推断出C是B的左孩子
在这里插入图片描述
3.前序为DEF,所以D是A的右孩子,再加上中序EDF,可以确定,E是D的左孩子,F是D的右孩子
在这里插入图片描述
结果他的后序遍历就很明显了,CBEFDA
拓展一下,如果要确定一颗二叉树,前序后序是不能直接确定的,必须要知道中序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值