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()函数最终导致题目没有做出来。

相关文章
|
C语言
C语言之给定n个数据, 求最大值出现的位置(如果最大值出现多次,求出第一次出现的位置即可,位置从1开始)。
C语言之给定n个数据, 求最大值出现的位置(如果最大值出现多次,求出第一次出现的位置即可,位置从1开始)。
388 0
|
2月前
|
搜索推荐 Java 数据处理
|
6月前
|
索引
2022-07-12 1252. 奇数值单元格的数目
2022-07-12 1252. 奇数值单元格的数目
|
7月前
PTA-二维数组中每行最大值和每行和
该代码段读取一个3x3二维数组的输入,计算每行的最大值和元素和,并按照指定格式输出。给定输入示例为`3 6 5 9 8 2 1 4 5`,输出格式化后的结果为: ``` 3 6 5 6 14 9 8 2 9 19 1 4 5 5 10 ``` 代码首先使用`map(int, input().split())`将输入转换为整数列表,然后通过循环处理每行,计算每行的最大值(`max(s)`)和元素和(`sum(s)`),并使用`f-string`格式化输出,每个数据占4列。
129 1
|
7月前
44.从键盘输入12个数存入二维数组a[3][4]中,编写程序求出最大元素的值及它所在的行号和列号
44.从键盘输入12个数存入二维数组a[3][4]中,编写程序求出最大元素的值及它所在的行号和列号
97 0
wustojc5001求若干整数的最大值
wustojc5001求若干整数的最大值
64 0
wustojc1002求2个整数最大值
wustojc1002求2个整数最大值
52 0
练习>>在二维数组中找出最大数,并输出行,列
练习>>在二维数组中找出最大数,并输出行,列
115 0
不用数组求多个数的最小值
不用数组求多个数的最小值
48 0
7-10 求最大值及其下标
本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。
118 0