[LC1302] 层数最深叶子节点的和
题目概述
给你一棵二叉树的根节点 root ,请你返回 层数最深的叶子节点的和 。
基本思路
这是一个简单的树的遍历的问题,可以用bfs或者dfs来解题。这里采用dfs来解,在遍历的过程中,只需要用全局变量来追踪历史最大的深度是多少,若当前深度等于最大深度,则累加上当前节点的值,若小于最大的深度,则什么都不做;若大于最大的深度,则以当前节点的值初始化累加结果。
代码
【Java】BFS
class Solution {
int maxDepth = 0;
int sum = 0;
public int deepestLeavesSum(TreeNode root) {
dfs(root, 0);
return sum;
}
public void dfs(TreeNode node, int depth){
if(node == null){
return;
}
if(depth > maxDepth){
sum = node.val;
maxDepth = depth;
}else if (depth == maxDepth){
sum += node.val;
}
dfs(node.left, depth+1);
dfs(node.right, depth+1);
}
}
[LC1302] 层数最深叶子节点的和的更多相关文章
- 366. Find Leaves of Binary Tree输出层数相同的叶子节点
[抄题]: Given a binary tree, collect a tree's nodes as if you were doing this: Collect and remove all ...
- LeetCode-层数最深叶子结点的和
层数最深叶子结点的和 LeetCode-1302 这里可以采用上一题中求解二叉树的深度的方法. 因为需要记录最深结点的值的和,所以这里可以边求和,如果遇到不符合最深结点时再将和sum=0. /** * ...
- 设计一个算法,求非空二叉树中指定的第k层(k>1)的叶子节点的个数
思想:採用基于层序遍历的方法. 用level扫描各层节点,若某一层的节点出队后.rear指向该层中最右节点.则将rear赋值给last(对于第一层.last=1).在出队时,若front=last,表 ...
- Z-tree 统计每一父节点的叶子节点数(看这一篇就够了)
最近刚走出校园的我找到了第一份工作,在入职考核中就遇见了一道Z-tree的试题 这道题目本身是不难的,但是我第一次接触这个插件而且还把解决问题的方向搞错了,弄的我好几天都很难受. 弄得我都开始怀疑人生 ...
- Leetcode之深度优先搜索(DFS)专题-1123. 最深叶节点的最近公共祖先(Lowest Common Ancestor of Deepest Leaves)
Leetcode之深度优先搜索(DFS)专题-1123. 最深叶节点的最近公共祖先(Lowest Common Ancestor of Deepest Leaves) 深度优先搜索的解题详细介绍,点击 ...
- Java 用自带dom解析器遍历叶子节点内容
一.XML文件config.xml,内容如下: <?xml version="1.0" encoding="UTF-8" standalone=" ...
- CF735C 数论\平衡树叶子节点的最大深度\贪心\斐波那契\条件归一化
http://codeforces.com/problemset/problem/735/C 题意..采用淘汰赛制..只要打输就退出比赛..而且只有两个选手打过的场数 相差不超过1才能比赛..最后问你 ...
- jquery zTree 查找所有的叶子节点
jquery zTree 查找所有的叶子节点 // 保存所有叶子节点 10 为初始化大小,并非数组上限 var arrayObj = new Array([10]); /* treeNode: 根节点 ...
- POJ 3277 City Horizon(叶子节点为[a,a+1)的线段树+离散化)
网上还有用unique函数和lowerbound函数离散的方法,可以百度搜下题解就有. 这里给出介绍unique函数的链接:http://www.cnblogs.com/zhangshu/archiv ...
- POJ 1577 Falling Leaves (子母二叉树,给出叶子节点的删除序列,求前序遍历)
题意:给出一棵字母二叉树删除叶子节点的序列,按删除的顺序排列.让你输出该棵二叉树额前序遍历的序列.思路:先把一棵树的所有删除的叶子节点序列存储下来,然后从最后一行字符串开始建树即可,最后遍历输出. ...
随机推荐
- bash 连接操作符(& && | 等)的使用
链式操作(Chaining Operators),就是用于将多个命令组合在一起,根据操作符类型执行各种复杂指令.链式操作常用于你在交互shell中写下一长串指令执行的时候,它让shell脚本的自动化能 ...
- PBA 商业分析师 考试心得
2021年7月报名开始学习PBA,因为疫情,中间经历两次考试延期,虽然复习时间增多了,但是学习的节奏也被打乱.好在没有白努力,今天收到了邮件,5A通过考试.在这里整理学习经验,梳理一下自己的思路,也希 ...
- Vue生态工具组合
文章目录 1.Vue版本 2.构建工具 3.包管理器 4.状态管理 5.http库 6.UI库 7.站点生成器 8.优质内容收录 vue生态工具多种多样,我们要如何选择并组合起来才最好呢.接下来给大家 ...
- 2024CSP-J游记
拿到题的第一步,先看第一题,大致扫了一眼,水题.以为是hash,进一步思考了一下,hash不行.发现可以用set,于是拿set敲了一下,样例全对. 第二题,看了眼样例以为是DFS.实际看了看发现是模拟 ...
- 多个modal遮罩层覆盖不全的问题
多个modal遮罩层覆盖不全的问题 如下有两个 modal的情况,要解决的是 在delete操作时弹出的modal 周围没有遮罩层环绕使得 确认 modal 辨识度不高 的问题 这里是修改好了的效果 ...
- 轻量级网络-ShuffleNetv2 论文解读
摘要 1.介绍 2.高效网络设计的实用指导思想 G1-同样大小的通道数可以最小化 MAC G2-分组数太多的卷积会增加 MAC G3-网络碎片化会降低并行度 G4-逐元素的操作不可忽视 3.Shuff ...
- vue项目获取富文本编辑器wangEditor内容导出为word(html转word格式并下载)
一.开发问题 html-doc-js,只能处理简单的富文本导出为word,对于编辑器中部分图文和样式会不生效,而wangEditor默认设置有下图这么多,所以要自己尝试找替代方案去解决html内容. ...
- Docker Registry之删除镜像、垃圾回收
Docker仓库在2.1版本中支持了删除镜像的API,但这个删除操作只会删除镜像元数据,不会删除层数据.在2.4版本中对这一问题进行了解决,增加了一个垃圾回收命令,删除未被引用的层数据.本文对这一特性 ...
- 使用 Apache MINA 开发高性能网络应用程序
Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络 ...
- Git commit注释规范
指定规范的提交格式, 方便后期版本的回滚与记录的查询 格式规范: <type>(<scope>): <subject> // 空一行 <body> 范例 ...