本文只涉及使用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

层序遍历的代码稍显复杂

编码:

运行输出,符合预期结果

到此结束。

有问题,或者建议请留言,谢谢。