二叉樹的建立與遍歷(遞迴實現)
阿新 • • 發佈:2020-06-19
在[樹的基本概念和術語總結](https://mp.weixin.qq.com/s/81uVCgwBlMII0NNCvTqNhw)一文中介紹了二叉樹的基本結構。
在[不知道怎樣用遞迴?按步驟來!](https://mp.weixin.qq.com/s/282O6tFppTuKKrY4zBQNHA)一文中介紹瞭如何使用遞迴。
二叉樹的結構是遞迴的,所以建立、遍歷也可以通過遞迴實現。
下面是一顆二叉樹:
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20200619144702322.png#pic_center)
結點的定義:
```java
public class Node {
Integer value;
Node leftChild;
Node rightChild;
public Node(Integer value) {
this.value = value;
}
}
```
# 建立
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20200619144805738.gif#pic_center)
各個結點的值用一個`ArrayList`集合來儲存,根據該集合來建立二叉樹。
按照[不知道怎樣用遞迴?按步驟來!](https://mp.weixin.qq.com/s/282O6tFppTuKKrY4zBQNHA)中的方法分析如何遞迴地建立一顆二叉樹。
> 第一步:找到大問題是什麼?
建立一顆二叉樹。
```java
private Node createBinaryTree(A