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个整数,求里面出现次数最多的数,如果有多个重复出现的数,求出值最大的一
|
C语言
C语言之给定n个数据, 求最大值出现的位置(如果最大值出现多次,求出第一次出现的位置即可,位置从1开始)。
C语言之给定n个数据, 求最大值出现的位置(如果最大值出现多次,求出第一次出现的位置即可,位置从1开始)。
345 0
|
3月前
读取7个数(1—50)的整数值
【7月更文挑战第7天】读取7个数(1—50)的整数值。
20 4
|
4月前
|
索引
2022-07-12 1252. 奇数值单元格的数目
2022-07-12 1252. 奇数值单元格的数目
|
5月前
44.从键盘输入12个数存入二维数组a[3][4]中,编写程序求出最大元素的值及它所在的行号和列号
44.从键盘输入12个数存入二维数组a[3][4]中,编写程序求出最大元素的值及它所在的行号和列号
55 0
|
5月前
2.任意输入三个数,求最大数
2.任意输入三个数,求最大数
37 0
练习>>在二维数组中找出最大数,并输出行,列
练习>>在二维数组中找出最大数,并输出行,列
100 0
|
10月前
不用数组求多个数的最小值
不用数组求多个数的最小值
39 0
|
Serverless C++
C/C++编程题之字符个数统计
C/C++编程题之字符个数统计