剑指offer32-Ⅱ 从上到下打印二叉树Ⅱ

题目描述

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。

例如:
给定二叉树: [3,9,20,null,null,15,7],

1
2
3
4
5
  3
/ \
9 20
/ \
15 7

返回其层次遍历结果:

1
2
3
4
5
[
[3],
[9,20],
[15,7]
]

提示:

  1. 节点总数 <= 1000

解题思路

方法一:队列

方法二:递归

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution32_2 {
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> res = new ArrayList<>();
level(res, root, 0);
return res;
}

private void level(List<List<Integer>> res, TreeNode root, int level) {
if (root == null) {
return;
}
if (level >= res.size()) {
res.add(new ArrayList<>());
}
res.get(level).add(root.val);
level(res, root.left, level + 1);
level(res, root.right, level + 1);
}
}

资料

Author

John Doe

Posted on

2021-05-28

Updated on

2021-06-13

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.