Binary Tree Level Order Traversal LeetCode solution in Java

1
class Solution {
2
public List<List<Integer>> levelOrder(TreeNode root) {
3
List<List<Integer>> result = new ArrayList<>();
4
if (root == null) return result;
5
List<Integer> rootList = new ArrayList<>();
6
rootList.add(root.val);
7
result.add(rootList);
8
levelOrder(root, 1, result);
9
return result;
10
}
11

12
private void levelOrder(TreeNode root, int level, List<List<Integer>> result) {
13
if (root == null) return;
14
List<Integer> children = exploreChildren(root);
15
if (!children.isEmpty()) {
16
if (level < result.size()) result.get(level).addAll(children);
17
else result.add(children);
18
}
19
levelOrder(root.left, level + 1, result);
20
levelOrder(root.right, level + 1, result);
21
}
22

23
private List<Integer> exploreChildren(TreeNode root) {
24
List<Integer> children = new ArrayList<>();
25
if (root.left != null) children.add(root.left.val);
26
if (root.right != null) children.add(root.right.val);
27
return children;
28
}
29
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0