1 | 3 |
实际上dfs
中的level
和bfs
中的count
都是一个意思,并不是摆设,而是用来约束遍历/递归的次数的
bfs
iterative:
1 | class Solution { |
dfs
recursive:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> list = new ArrayList<>();
dfs(list, 0, root);
return list;
}
public void dfs(List<List<Integer>> list, int level, TreeNode root) {
if (root == null) return;
if (list.size() == level) list.add(new ArrayList<>());
list.get(level).add(root.val);
if (root.left != null) dfs(list, level + 1, root.left);
if (root.right != null) dfs(list, level + 1, root.right);
}
}