Find Largest Value in Each Tree Row LeetCode solution in Java

1
/**
2
* Definition for a binary tree node. public class TreeNode { int val; TreeNode left; TreeNode
3
* right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left,
4
* TreeNode right) { this.val = val; this.left = left; this.right = right; } }
5
*/
6
class Solution {
7
private List<Integer> li = new ArrayList<>();
8

9
public List<Integer> largestValues(TreeNode root) {
10

11
if (root == null) return li; // if root is NULL
12

13
// using bfs(level-order)
14
Queue<TreeNode> q = new LinkedList<>();
15
q.add(root);
16
while (!q.isEmpty()) {
17
int size = q.size();
18
int res = Integer.MIN_VALUE;
19
while (size-- > 0) {
20
TreeNode temp = q.poll();
21
if (temp.left != null) q.add(temp.left);
22
if (temp.right != null) q.add(temp.right);
23
res = Math.max(res, temp.val); // comparing every node in each level to get max
24
}
25
li.add(res); // adding each level Max value to the list
26
}
27
return li;
28
}
29
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0