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

魏县审批建设的网站seo快速排名上首页

魏县审批建设的网站,seo快速排名上首页,个人网站经营性备案,html5网页设计毕业论文📌题目链接:LeetCode 515. 在每个树行中找最大值 题目描述 给定一棵二叉树的根节点 root,请找出该二叉树中每一层的最大值。 示例 示例 1 输入: root [1,3,2,5,3,null,9] 输出: [1,3,9]示例 2 输入: root [1,2,3] 输出: [1,3]思路分析 …

📌题目链接:LeetCode 515. 在每个树行中找最大值


题目描述

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


示例

示例 1

示例图1

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

示例 2

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

思路分析

本题需要找出每一层的最大值关键词是“每一层”,所以自然联想到可以用层数作为 key来记录。

整体思路是:

  • 使用一个哈希表HashMap<Integer, Integer>),记录每层的最大值。

    • key:层数

    • value:该层目前为止遇到的最大节点值

  • 采用**深度优先搜索(DFS)**遍历整棵树。

  • 在遍历过程中实时更新每一层的最大值。

  • 最后按照层数顺序,提取出结果。


代码实现

首先定义二叉树节点 TreeNode

class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) { this.val = val; }TreeNode(int val, TreeNode left, TreeNode right) {this.val = val;this.left = left;this.right = right;}
}

然后是主体解法:

import java.util.*;class Solution {// 用哈希表记录每层的最大值private Map<Integer, Integer> levelMax = new HashMap<>();public List<Integer> largestValues(TreeNode root) {dfs(root, 0);List<Integer> result = new ArrayList<>();for (int i = 0; i < levelMax.size(); i++) {result.add(levelMax.get(i));}return result;}private void dfs(TreeNode node, int level) {if (node == null) return;// 更新当前层最大值levelMax.put(level, Math.max(levelMax.getOrDefault(level, Integer.MIN_VALUE), node.val));// 递归遍历左右子树dfs(node.left, level + 1);dfs(node.right, level + 1);}
}

细节讲解

  • dfs(node, level) 方法中,每递归一层,level 加 1。

  • levelMax.getOrDefault(level, Integer.MIN_VALUE):如果当前层还没有记录,默认使用最小值。

  • 最后遍历 map,按层序输出。


复杂度分析

  • 时间复杂度:O(N),其中 N 是树中的节点个数,需要遍历每个节点一次。

  • 空间复杂度:O(H),H 为树的高度,主要是递归调用栈的空间。


小贴士:为什么可以用 DFS?

虽然找层次一般第一反应是 BFS(广度优先搜索),但其实 DFS 也能做,只要我们在递归过程中维护当前层数,一样能正确处理。

当然,如果用 BFS,会更直观一些,比如用队列按层遍历,每层取最大值,也是不错的方法。


总结

✅ 本题用 DFS + 哈希表 很轻松就能解决,重点是掌握:

  • 递归时带上层数信息

  • 每层维护最大值

如果想进一步练习,可以尝试用 BFS(广度优先遍历) 来做一版!


如果这篇文章对你有帮助,别忘了点个 赞👍收藏⭐ 支持一下呀!
有任何问题也欢迎在评论区交流~

http://www.dtcms.com/wzjs/188731.html

相关文章:

  • 淮南市城乡建设委员会网站新冠疫情最新情况
  • 手工艺品网站建设方案b站黄页推广
  • 黑蒜东莞网站建设公司网络搭建
  • 巴中网站建设有限公司app线上推广是什么工作
  • 品牌网站建设公司哪家好你对网络营销的理解
  • 分析seo做的不好的网站windows7优化大师
  • 重庆网站建设公司价钱2345电脑版网址导航
  • 国内做免费的视频网站百度大搜
  • 做水果网站需要些什么广州seo外包
  • 大学做视频网站设计什么叫网络营销
  • 有微信公众号怎么做微网站块链友情链接平台
  • 广州做网站厉害的公司关键词百度网盘
  • 网站的开发费用吗近三天新闻50字左右
  • 昆明网站建设系统互联网营销专业
  • 商昊网站建设上海seo优化公司kinglink
  • wordpress 拿站怎么创建网站?
  • 昆山网站建设有限公司怎么样网站搜索查询
  • 如何建导航网站今日疫情实时数据
  • 泰州网站设计企业网站推广方法
  • 湖南昌华建设集团网站自学seo能找到工作吗
  • 淄博哪里有做网站的软文代写接单平台
  • seo排名优化有哪些seo免费诊断联系方式
  • 有专门为个人网站做推广的吗seo优化易下拉霸屏
  • 服装网站怎么做的企业邮箱域名
  • 松江注册公司seo sem论坛
  • 深圳中高端网站建设青岛网
  • 百度搜不到网站宁波seo咨询
  • 秦皇岛的网站建设公司厦门seo顾问
  • 郑州 高端网站建设百度贴吧网页版登录入口
  • 学习电子商务网站建设与管理的感想阿里云域名注册官网