[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 (子母二叉树,给出叶子节点的删除序列,求前序遍历)
题意:给出一棵字母二叉树删除叶子节点的序列,按删除的顺序排列.让你输出该棵二叉树额前序遍历的序列.思路:先把一棵树的所有删除的叶子节点序列存储下来,然后从最后一行字符串开始建树即可,最后遍历输出. ...
随机推荐
- Hadoop习题汇总
目录 选择 单选 多选 判断 填空 简答 选择 单选 查看HDFS系统版本的Shell命令,以下正确的是(). hdfs -ver hdfs version (答案) dfsadmin version ...
- manim边学边做--三维的点和线
Manim 提供了一系列专为三维空间设计的对象,让创建三维数学动画变得更加轻松. 本篇开始介绍其中最简单的点和线相关对象,也就是Dot3D(三维的点),Line3D(三维的线)和Arrow3D(三维的 ...
- vue-amap接入高德地图示例
通过 CDN 的方式我们可以很容易地使用 vue-amap 写出一个 Hello world 页面. 什么是CDN? 定义是这样的:CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通 ...
- 使用 Antlr 开发领域语言
高 尚 (gaoshang1999@163.com), 软件工程师, 中国农业银行软件开发中心 简介: Antlr 是一个基于 Java 开发的功能强大的语言识别工具,Antlr 以其简介的语法和高速 ...
- Java深度历险(三)——Java线程:基本概念、可见性与同步
开发高性能并发应用不是一件容易的事情.这类应用的例子包括高性能Web服务器.游戏服务器和搜索引擎爬虫等.这样的应用可能需要同时处理成千上万个请求.对于这样的应用,一般采用多线程或事件驱动的架构.对于J ...
- pikachu平台XXE漏洞通关教程详解
声明! 如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人无关,切勿触碰法律底线,否则后果自负!!!! 文章来自个人csdn博客,地址:ht ...
- Blazor 组件库 BootstrapBlazor 中Card组件介绍
一个较为完整的Card样子 Card组件介绍 Card组件分为三部分,CardHeader.CardBody.CardFooter. 代码格式如下: <Card> <CardHead ...
- 【CSS样式】好看的样式千篇一律,有趣的灵魂万里挑一
input 输入框美化: https://www.jianshu.com/p/9b4b60b8d475 button 按钮美化: 1.登录框按钮 https://blog.csdn.net/wangj ...
- Natasha v9.0 为 .NET 开发者提供 [热执行] 方案.
项目简介 自 Natasha v9.0 发布起,我将基于 Natasha 的推出热执行方案,这项技术允许基于 控制台(Console) 和新版 Asp.net Core 架构的项目在运行中动态重编译, ...
- Git for windows下Filename too long
前情 Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理,我公司目前都是基于Git来管理项目代码的. 坑位 最近在拉取代码时报如下错误,其中有句 ...