File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed
binary-tree-level-order-traversal Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * Definition for a binary tree node.
3+ * public class TreeNode {
4+ * int val;
5+ * TreeNode left;
6+ * TreeNode right;
7+ * TreeNode() {}
8+ * TreeNode(int val) { this.val = val; }
9+ * TreeNode(int val, TreeNode left, TreeNode right) {
10+ * this.val = val;
11+ * this.left = left;
12+ * this.right = right;
13+ * }
14+ * }
15+ */
16+ class Solution {
17+ // Time Complexity: O(n), n: the number of nodes
18+ // Space Complexity: O(w), w: max width of tree
19+
20+ public List <List <Integer >> levelOrder (TreeNode root ) {
21+ List <List <Integer >> results = new ArrayList <>();
22+ if (root == null ) return results ;
23+
24+ Queue <TreeNode > levelQueue = new LinkedList <>(); // use queue considering FIFO
25+ levelQueue .offer (root );
26+
27+ while (!levelQueue .isEmpty ()) {
28+ ArrayList <Integer > level = new ArrayList <>(); // node values list for each level
29+ int size = levelQueue .size ();
30+
31+ for (int i = 0 ; i < size ; ++i ) {
32+ TreeNode node = levelQueue .poll ();
33+ level .add (node .val );
34+ if (node .left != null ) levelQueue .offer (node .left );
35+ if (node .right != null ) levelQueue .offer (node .right );
36+ }
37+
38+ results .add (level );
39+ }
40+
41+ return results ;
42+ }
43+ }
You can’t perform that action at this time.
0 commit comments