本文只涉及使用Golang实现的二叉树的先序、中序、后序和层序的递归遍历方式。
二叉树
树的任意节点至多包含两棵子树。
二叉树的遍历
二叉树的遍历是指从二叉树的根结点出发,按照某种次序依次访问二叉树中的所有结点,使得每个结点被访问一次,且仅被访问一次。
题目数据
我们以上面的这个二叉树图为基础数据编写代码
Code
基础结构
二叉树需要存储自身节点数据,以及最多两个子节点的索引
二叉树模型代码
结合上面的节点结构体代码,我们把模拟数据用代码表示出来
1. 先序递归遍历
先输出自己的值,再遍历输出左子树的值,再遍历输出右子树的值。
我们先看图解出参考答案:1 2 4 6 7 8 3 5
编码:
运行输出,符合预期结果
2. 中序递归遍历
先遍历输出左子树,再输出自身的值,再遍历输出右子树的值
我们先看图解出参考答案:4 7 6 8 2 1 3 5
编码:
运行输出,符合预期结果
3. 后序递归遍历
先遍历输出左子树的值,再遍历输出右子树,最后输出自身节点的值
我们先看图解出参考答案:7 8 6 4 2 5 3 1
编码:
运行输出,符合预期结果
4. 层序递归遍历
按照节点深度,由树根部(深度为0),一层一层向下遍历子节点
我们先看图解出参考答案:1 2 3 4 5 6 7 8
层序遍历的代码稍显复杂
编码:
运行输出,符合预期结果
到此结束。
有问题,或者建议请留言,谢谢。