Find Largest Value in Each Tree Row
给一个二叉树, 找每层最大的值. 直接层序扫描.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
class Solution { public List<Integer> largestValues(TreeNode root) { List<Integer> res = new ArrayList<>(); if(root == null) return res; Queue<TreeNode> q = new LinkedList<>(); q.offer(root); while(!q.isEmpty()) { int size = q.size(); int max = Integer.MIN_VALUE; for(int i = 0; i < size; i++) { TreeNode node = q.poll(); max = Math.max(max, node.val); if(node.left != null) q.offer(node.left); if(node.right != null) q.offer(node.right); } res.add(max); } return res; } } |