LeetCode - Find Largest Value in Each Tree Row
Given the root of a binary tree, return an array of the largest value in each row of the tree (0-indexed). Example 1: Input: root = [1,3,2,5,3,null,9] Output: [1,3,9] Example 2: Input: root = [1,2,3] Output: [1,3] Example 3: Input: root = [1] Output: [1] Example 4: Input: root = [1,null,2] Output: [1,2] Example 5: Input: root = [] Output: [] Constraints: The number of nodes in the tree will be in the range [0, 104]. -231 <= Node.val <= 231 - 1
BFS:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */ class Solution { public List<Integer> largestValues(TreeNode root) { List<Integer> res = new ArrayList<>(); if (root == null) { return res; } Queue<TreeNode> queue = new LinkedList<>(); queue.add(root); while (!queue.isEmpty()) { int max = Integer.MIN_VALUE; int size = queue.size(); for (int i = 0; i < size; i++) { TreeNode node = queue.poll(); max = Math.max(max, node.val); if (node.left != null) { queue.add(node.left); } if (node.right != null){ queue.add(node.right); } } res.add(max); } return res; } }
posted on 2021-02-09 14:01 IncredibleThings 阅读(46) 评论(0) 编辑 收藏 举报