Java 中的二叉树结构的表示
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
一个简单的二叉树层序遍历题目
二叉树
3
/ \
9 20
/ \
15 7
请给出二叉树的 层序遍历序列:
[
[3],
[9,20],
[15,7]
]
二叉树的层序遍历(递归实现)
我们需要一个二维列表存储每一层的元素。
Java中这样定义一个二维列表:
List<List> levels = new ArrayList<>();
- 二维表的索引——该索引指向的嵌套列表位于第几层。
例如二维表索引 levels[0]处,表示的是第一层。第一层中存储了根节点 - 每一层的都在第一次进入的时候创建
代码如下:
class Solution {
// 递归层序遍历,递归的时候传递当前层数
List<List<Integer>> levels = new ArrayList<List<Integer>>();
public List<List<Integer>> levelOrder(TreeNode root) {
if(root == null) return levels;
levelBuilder(root, 0);
return levels;
}
public void levelBuilder(TreeNode r