当前位置: 首页 > news >正文

515.在每个树行中找最大值(二叉树算法题)

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

力扣题目链接

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

示例1:

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

示例2:

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

提示:

  • 二叉树的节点个数的范围是 [0,104]
  • -231 <= Node.val <= 231 - 1

/*** Definition for a binary tree node.* public class TreeNode {*     int val;          // 节点的整数值*     TreeNode left;    // 指向左子节点的引用(指针)*     TreeNode right;   // 指向右子节点的引用(指针)*     *     // 默认构造函数:创建一个空节点(val 默认为 0)*     TreeNode() {}*     *     // 构造函数:根据给定的值创建一个节点,左右子节点默认为 null*     TreeNode(int val) { this.val = val; }*     *     // 构造函数:根据给定的值和左右子节点创建一个完整节点*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {/*** 找出二叉树每一层的最大值。* * 使用层序遍历(广度优先搜索,BFS)的方式,逐层访问二叉树的所有节点,* 对每一层的所有节点值求最大值,并将结果存入列表返回。* * 示例:*       1*      / \*     3   2*    / \   \*   5   3   9* 输出: [1, 3, 9]* 解释: 第0层最大值是1,第1层是3,第2层是9。* * @param root 二叉树的根节点* @return 返回一个列表,包含每一层节点值的最大值(从上到下)*/public List<Integer> largestValues(TreeNode root) {// 存储每一层最大值的结果列表List<Integer> resList = new ArrayList<>();// 使用双端队列实现层序遍历(BFS),这里当作普通队列使用(FIFO)Deque<TreeNode> deque = new LinkedList<>();// 如果根节点为空,直接返回空列表if (root == null) return resList;// 将根节点加入队列,作为遍历的起点deque.offer(root);// 当队列不为空时,说明还有节点未处理,继续循环while (!deque.isEmpty()) {// 记录当前层的节点数量,用于控制内层循环只处理当前层的节点int len = deque.size();// 初始化当前层的最大值为整数的最小值(确保任何节点值都能更新它)int max = Integer.MIN_VALUE;// 遍历当前层的所有节点(共 len 个)for (int i = 0; i < len; i++) {// 从队列头部取出一个节点TreeNode temp = deque.poll();  // 注意:原代码中拼写错误 tmep → temp// 更新当前层的最大值max = Math.max(max, temp.val);// 如果当前节点有左子节点,则将其加入队列,供下一层处理if (temp.left != null) {deque.offer(temp.left);}// 如果当前节点有右子节点,则将其加入队列,供下一层处理if (temp.right != null) {deque.offer(temp.right);}}// 当前层遍历结束,将该层的最大值加入结果列表resList.add(max);}// 返回每一层最大值的列表return resList;}
}

http://www.dtcms.com/a/416473.html

相关文章:

  • 云南高端网站建设wordpress评论头像问题
  • flash网站下载长沙 网站优化
  • 温州营销网站制作费用王占郡
  • Vala编程语言高级特性-错误处理
  • 建设网站公司建网页商城网站数据库表关系设计
  • 网站源码上传图片出错WordPress中英文旅游模板
  • 网站开发 价格差异想招聘员工去哪个网站
  • 外贸做的社交网站有哪些网站系统开发毕业设计
  • 响应式设计 手机网站wordpress个性首页
  • 网站制作怎么做语音搜索框wordpress更改生成小图大小
  • 文登建设局网站wordpress 主题开发环境
  • 网站开发公司建站源码网页开发需求定制
  • 湘潭网站建设 皆来磐石网络免费中文网站模板
  • 花都网站 建设信科网络templatemonster wordpress
  • 网站积分方案虹桥门户网
  • ESP32-S3入门第七天:UART串口通信与设备交互
  • 营销软件网站建设网站优化效果怎么样
  • 解码编程语言:穿越技术迷宫的指南【2】
  • 网站编程语言网站开发语言有哪几种
  • 狮山网站制作做设计比较好的网站
  • 简单美食网站模板免费下载开源手机网站建站系统
  • 网站公司 模板网站设计与网页制作公司
  • 一个网站备案多个域名吗建设通好用吗
  • wordpress手机站如何做网页的制作
  • 怎样做收费网站微信公众号和微网站
  • 个人怎么做ckmov解析网站小视频网站建设
  • 国外网站模版免费下载阿里巴巴如何建设网站首页
  • 建设网站排名海外营销网络
  • 网站设计文字超链接网络个性化定制
  • 网站建设结论推广优化厂商联系方式