leetcode 515. 在每个树行中找最大值
您需要在二叉树的每一行中找到最大的值。
示例:
输入:
1
/ \
3 2
/ \ \
5 3 9
输出: [1, 3, 9]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
采用层序遍历树,用两个队列来记录,用一个max来记录每一层的最大值。
public List<Integer> largestValues(TreeNode root) { List<Integer> list = new ArrayList<>(); if (root == null) { return list; } Queue<TreeNode> a = new ArrayDeque<>(); Queue<TreeNode> b = new ArrayDeque<>(); a.add(root); while (!a.isEmpty() ) { int max = Integer.MIN_VALUE; while (!a.isEmpty()) { TreeNode poll = a.poll(); max = Math.max(max, poll.val); if (poll.left != null) { b.add(poll.left); } if (poll.right != null) { b.add(poll.right); } } list.add(max); a = b; b = new ArrayDeque<>(); } return list; }


浙公网安备 33010602011771号