09_每个行中找最大值

简介: 09_每个行中找最大值

在每个树行中找最大值

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

示例1:

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

示例2:

输入: root = [1,2,3]
输出: [1,3]
class Solution {
    public List<Integer> largestValues(TreeNode root) {
        List<Integer> resList = new ArrayList<>();
        if (root == null)  return resList;
        Queue<TreeNode> queue = new LinkedList<>();
        queue.add(root);
        while (!queue.isEmpty()) {
            int levelSize = queue.size();
            int max = Integer.MIN_VALUE;  //使用Integer下的最小值做为初始化
            for (int i = 0; i < levelSize; i++) {
                TreeNode tmp = queue.poll();
                max = Math.max(max, tmp.val);  //Math函数做一个比较,两者中的最大值
                if (tmp.left != null)  queue.add(tmp.left);
                if (tmp.right != null)  queue.add(tmp.right);
            }
            resList.add(max);   //将每一行的最大值加入到resList列表中
        }
        return resList;
    }
}
JAVA 复制 全屏

[总结]

这道题仍然是建立在层次遍历的基础上的,在最大值的比较上没有用到Max函数,没有想到用Math.max()函数最终导致题目没有做出来。

相关文章
|
5月前
给定 n 个整数,求里面出现次数最多的数,如果有多个重复出现的数,求值最大的那个 给定n个整数,求里面出现次数最多的数,如果有多个重复出现的数,求出值最大的一
给定 n 个整数,求里面出现次数最多的数,如果有多个重复出现的数,求值最大的那个 给定n个整数,求里面出现次数最多的数,如果有多个重复出现的数,求出值最大的一
输入一个整数,判断大于0小于0还是等于0
输入一个整数,判断大于0小于0还是等于0
|
12月前
|
C语言
C语言之给定n个数据, 求最大值出现的位置(如果最大值出现多次,求出第一次出现的位置即可,位置从1开始)。
C语言之给定n个数据, 求最大值出现的位置(如果最大值出现多次,求出第一次出现的位置即可,位置从1开始)。
342 0
|
4月前
|
索引
2022-07-12 1252. 奇数值单元格的数目
2022-07-12 1252. 奇数值单元格的数目
|
5月前
2.任意输入三个数,求最大数
2.任意输入三个数,求最大数
32 0
|
5月前
|
Python
计算小于或等于n的非负整数区间包含的1的数量
计算小于或等于n的非负整数区间包含的1的数量
50 0
|
10月前
不用数组求多个数的最小值
不用数组求多个数的最小值
35 0
实现任意行数的杨辉三角
实现任意行数的杨辉三角
52 0
实现任意行数的杨辉三角
|
C#
【C#】输出正序、逆序、最大值、最小值和平均值
正序、逆序、最大值、最小值和平均值
315 1
【C#】输出正序、逆序、最大值、最小值和平均值