二叉树先序遍历
来源:互联网 发布:青岛惠普大数据烂尾 编辑:程序博客网 时间:2024/05/28 11:49
前两天面试,看见了个笔试题,关于二叉树的,今天算是把自己的一点理解写下来吧。
今天看网文,才想起来,二叉树的先序遍历、中序遍历、后序遍历,
遍历顺序都是相对于父节点写的,也就是先遍历父节点、中间遍历父节点,最后遍历父节点。
讲完理论,来看一下今天理解的一个二叉树题
先序遍历:FBACDEGH
中序遍历:ABDCEFGH
一下只适用于已知先序遍历和中序遍历的情况进行的分析:
//①判断传过来的树的中序遍历是否为空
//②找到树的先序遍历中第一个节点
//③找到这个节点在中序遍历中的位置
//④这个节点左边即为它的左树,右边即为它的右树
//⑤判断这个节点的左树是否为空,为空的话判断这个节点右边是否为空
有全局变量:firstTree
middleTree
firstIndex=0
1、firstTree = FBACDEGH;
middleTree = ABDCEFGH;
2、执行①,向①中传参数,判断middleTree:ABDCEFGH
返回判断结果true;
3、执行②,向②中传参数:FBACDEGH
取到相应位置firstIndex的节点,超出FBACDEGH 的长度则跳出;
取到F
4、执行③,向③中传参数:ABDCEFGH
返回F位置middleIndex=5;
5、执行④,向④中传参数:ABDCEFGH
leftTree = ABDCE
rightTree = GH
6、执行⑤,向⑤中传参数:ABDCEFGH,index=5
if(leftTree不为空){
middleTree= leftTree;
}else{
middleTree= rightTree;
}
7、重复 2~7
以下就是我得到的二叉树:
以前只是做了题,这也是我第一次梳理算法的代码流程
以上就是我的理解了,有不对的或者需要修改的,大家可以指出来
要去准备面试的材料了,代码以后再补吧。
- 二叉树先序遍历(递归)
- 数据结构 -- 二叉树先序遍历
- 二叉树先序遍历
- [leetcode]二叉树先序遍历
- 二叉树先序遍历
- 二叉树先序遍历
- 二叉树先序遍历
- 二叉树先序遍历(非递归)
- hdu 3999二叉树先序遍历
- 二叉树先序遍历的理解
- [LeetCode]144 二叉树先序遍历
- 二叉树先序遍历、中序遍历、后序遍历
- 二叉树先序遍历、中序遍历、后续遍历算法
- 二叉树先序遍历,中序遍历,后序遍历
- 已知二叉树先序遍历中序遍历求后序遍历
- 已知二叉树先序遍历,中序遍历创建二叉树并输出后序遍历
- 由二叉树先序遍历/后序遍历和中序遍历生成二叉树
- 已知二叉树先序遍历中序遍历求其后序遍历、重建二叉树
- shell中的(),{}几种语法用法
- android四种点击事件
- Android-7.0-MediaPlayer状态机
- 1101. Quick Sort (25)
- Taint analysis and pattern matching with Pin
- 二叉树先序遍历
- java内部类详解
- 5-9 将x的平方赋值给y (5分)
- LeetCode 154. Find Minimum in Rotated Sorted Array II (Hard)
- 【SSH网上商城项目实战02】基本增删查改、Service和Action的抽取以及使用注解替换xml
- 亿级WEB系统搭建:单机到分布式集群
- HDU1272 小希的迷宫 并查集判环
- 使用maven deploy将项目热部署到tomcat
- 看DynamicLoadApk源码有感