当前位置:网站首页>力扣 515. 在每个树行中找最大值

力扣 515. 在每个树行中找最大值

2022-06-26 03:53:00 冷酷的摸鱼小将

题目

给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。

示例

在这里插入图片描述
输入: root = [1,3,2,5,3,null,9]
输出: [1,3,9]

输入: root = [1,2,3]
输出: [1,3]

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/find-largest-value-in-each-tree-row
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法1:队列

Java实现
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 sz = q.size();
            int max = Integer.MIN_VALUE;
            for (int i = 0; i < sz; i++) {
    
                TreeNode cur = q.poll();
                max = cur.val > max ? cur.val : max;
                if (cur.left != null) q.offer(cur.left);
                if (cur.right != null) q.offer(cur.right);
            }
            res.add(max);
        }
        return res;
    }
}

在这里插入图片描述

原网站

版权声明
本文为[冷酷的摸鱼小将]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_42467009/article/details/125458564