[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 (子母二叉树,给出叶子节点的删除序列,求前序遍历)
题意:给出一棵字母二叉树删除叶子节点的序列,按删除的顺序排列.让你输出该棵二叉树额前序遍历的序列.思路:先把一棵树的所有删除的叶子节点序列存储下来,然后从最后一行字符串开始建树即可,最后遍历输出. ...
随机推荐
- 解决IDEA中SpringBoot框架使用@Autowired注解方式注入mapper对象出现红色下划线的问题
点击编译器左上角File,点击settings进入设置界面,找到图片中对应的位置,将红线圈住的地方改为Warning,点击右下角的Apply即可
- 需求解决 _针对特定Class设置样式 _CSS _20210906
需求解决 _针对特定Class设置样式 _CSS _20210906 有一个需求,需要对一些具有 某个Class的标签 ,icon,以及其中的字体设置 隐藏或者展示 解决方法如下:(需要对 该页面引用 ...
- 反思---树上LIS
反思---树上LIS 题目描述 给你一棵 n个节点的树,树的每个节点上都有一个值 a[i] . 现在要您求出从 1 号点到 i 号点的最短路径上最长上升子序列的长度. 就是单调栈优化+dfs回溯 对比 ...
- php如何解决高并发
PHP交流群 656679284 为PHP广大爱好者提供技术交流,有问必答,相互学习相互进步! 1.应用和静态资源分离 将静态资源(js,css,图片等)放到专门的服务器中. 2.页面缓存 将应用 ...
- 树莓派开机自启动热点(使用有线eth0上网,使用wlan0进行热点)
一.背景内容 其实就是接了一单,有人需要我帮忙配置一下树莓派开机启动热点.这边做个记录,该方式树莓派4B.3B都可以使用. 二.实际操作 1.使用网线连接路由器和树莓派 树莓派的网络接口一共有三个,分 ...
- 代码差异对比之git diff详解!
1.测试对比文件准备 文件A:diff1(diff1文件夹下可以放n个文件) public class Diff1 { public static void main(String[] args){ ...
- cmu15545-索引并发控制(Concurrent Indexes)
目录 Overview Lock和Latch辨析 设计目标 大致分类 Hash Table Latches Page Latches Slot Latches B+Tree Latches 并发问题 ...
- C# 高效餐饮管理系统设计与实现
前言 推荐一个C#开发全面.高效的商用餐饮管理系统.该系统集成了餐饮业日常运营所需的各种功能,包括但不限于订单管理.库存控制.财务结算等,通过信息技术手段,帮助餐饮企业实现管理的自动化和智能化. 系统 ...
- openjdk和jdk的区别与联系
使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的openjdk,那么到底什么是openjdk,它与sun jdk有什么关系和区别呢?历史上的原 ...
- 基于Spring源码分析AOP的实现机制
Spring一个重要的特性就是提供了AOP,使得我们可以在原有的基础上增加我们自己的系统业务逻辑.使得我们系统业务逻辑与应用业务逻辑相分离,耦合性降低,并且大大的提高了开发的效率.Spring的AOP ...