不会就坚持41天吧 二叉树每层最大值

本文介绍了二叉树每层的最大值计算方法,首先回顾了List的add和set方法,强调了其操作细节。接着,详细阐述了求解二叉树每层最大值的思路,通过使用队列进行层次遍历,确保遍历到每一层的节点并找到最大值,最终将结果存储到链表中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、list中add、set方法

二、set(int index,E element):实际上是一种替换操作

二叉树每层最大值


整形类型是有范围的,最大值为Integer.MAX_VALUE,即2147483647,最小值为Integer.MIN_VALUE -2147483648

一、list中add、set方法

add方法,有2种重载方法

1、boolean  add(E element):用于向集合的末尾插入新的元素,是List接口中最常用的插入方法

2、void  add(int index, E element):可以在插入操作过程中指定插入的位置【下标从0开始】

(1)当前要插入的位置已存在时,会自动将当前位置及之后的元素全部后移进行插入

(2)参数index的值不能大于当前list的容量,即下标必须从0开始

(3)由于ArrayList对象初始化时不包含任何元素,因此size的值为依旧为0,所以,即使在创建list对象时指定了初始化大小,也不可以从任意下标插入(无论是否初始化大小,下标必须从0开始)

二、set(int index,E element):实际上是一种替换操作

要设置某个位置上的元素,这个位置必须已存在,否则会抛出异常

二叉树每层最大值

思想:

创建队列和输出链表

如果当前队列不空的话 就加入队尾

循环:每次都要设置最小值 lg是当前层数的所有节点 遍历这么多遍 最后输出一个加入到ret链表中

class Solution {
    public List<Integer> largestValues(TreeNode root) {
        Queue<TreeNode> queue=new LinkedList<>();
        List<Integer> ret=new LinkedList<>();
        if(root!=null){
            queue.add(root);
        }
        while(!queue.isEmpty()){
            int num=Integer.MIN_VALUE;
            int lg=queue.size();
            for(int i=0;i<lg;i++){
                TreeNode q=queue.poll();
                num=Math.max(num,q.val);
                if(q.left!=null){
                    queue.add(q.left);
                }
                if(q.right!=null){
                    queue.add(q.right);
                }
            }
            ret.add(num);
        }
        return ret;
        }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值