2
* Definition for a binary tree node. public class TreeNode { int val; TreeNode left; TreeNode3
* 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; } }7
private List<Integer> li = new ArrayList<>();9
public List<Integer> largestValues(TreeNode root) {11
if (root == null) return li; // if root is NULL13
// using bfs(level-order)14
Queue<TreeNode> q = new LinkedList<>();16
while (!q.isEmpty()) {18
int res = Integer.MIN_VALUE;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 max25
li.add(res); // adding each level Max value to the list