Skip to content

Commit bb28c0e

Browse files
authored
Merge pull request #1950 from njngwn/main
2 parents c65df35 + bdfad36 commit bb28c0e

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
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+
}

counting-bits/njngwn.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
class Solution {
2+
public int[] countBits(int n) {
3+
int[] bitCountArr = new int[n+1];
4+
5+
for (int i = 1; i <= n; ++i) {
6+
bitCountArr[i] = bitCountArr[i/2] + (i & 1);
7+
}
8+
9+
return bitCountArr;
10+
}
11+
}

0 commit comments

Comments
 (0)