【LeetCode-中等题】513. 找树左下角的值

文章目录

    • 题目
    • 方法一:前序递归
    • 方法二:层序遍历

题目

在这里插入图片描述

方法一:前序递归

在递归遍历到叶子结点时,对比此时的节点深度,若当前节点深度大于当前最大深度,就更新value值,最后记录下的value即为最下最左的节点值

带值(深度)递归(纯递归

class Solution {int Deep = -1;int value = 0;public int findBottomLeftValue(TreeNode root) {dfs(root,0);return value ;}public void dfs(TreeNode root,int depth){if(root == null) return;if(root.left == null &&root.right == null) {if(depth >Deep){Deep = depth;value = root.val;}}dfs(root.left,depth+1);dfs(root.right,depth+1);}
}

不带值(深度)递归(递归+深度回溯

class Solution {int Deep = -1;int value = 0;int depth = 0;public int findBottomLeftValue(TreeNode root) {dfs(root);return value ;}public void dfs(TreeNode root){if(root == null) return;if(root.left == null &&root.right == null) {if(depth >Deep){Deep = depth;value = root.val;}}depth++;dfs(root.left);dfs(root.right);depth--;}
}

方法二:层序遍历

层序遍历 按照从右向左加入每层节点的值,这样每层取出节点的时候,最后记录的就是每一层最左的节点值,然后直到最后一层,记录下最后一层最左的值

 public int findBottomLeftValue(TreeNode root) {int res  = 0;Deque<TreeNode> queue = new ArrayDeque<>();queue.offer(root);while(!queue.isEmpty()){root = queue.poll();res = root.val;if(root.right!=null) queue.offer(root.right);//按照从右向左加入每层节点的值,这样每层取出节点的时候,最后记录的就是每一层最左的节点值if(root.left!=null) queue.offer(root.left);}return res;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/139597.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023.9.23(对这一年过去几个月的总结)

这个时间点杭州正在开亚运会&#xff0c;周六&#xff0c;大周&#xff0c;难得的大周&#xff0c;早上在公司健身房跑完步&#xff0c;就来工位看书了。 反思一下&#xff1a; 技术&#xff1a; 今年在技术学习上的目标&#xff0c;达成率是在太低&#xff0c;但看文章输出来…

手摸手图解 CodeWhisperer 的安装使用

CodeWhisperer 是亚⻢逊出品的一款基于机器学习的通用代码生成器&#xff0c;可实时提供代码建议。 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术&#xff0c;观点…

【云原生】Kubernetes学习笔记

部署 在部署前强调几点 不要使用IPv6, 很多组件都不支持IPv6不要使用最新版本, 最新版本非常不稳定, 甚至可能存在无法运行的bug不要版本更新, 安装后就将版本固定下来, 新的版本可能会引入新功能, 或移除旧功能, 导致Kubernetes无法运行 Kubeadm介绍 K8s是由多个模块构成的…

【Qt】16进制转换格式字符串及二进制

【Qt】16进制转换格式字符串及二进制 16进制转换成字符串16进制转换成格式字符串16进制转换成字符串并每两位加空格16进制转换成二进制 16进制转换成字符串 可调用QString类的静态方法number(),此方法为重载&#xff0c;有以下重载 // 第一个参数为输入值&#xff0c;第二个为…

《动手学深度学习 Pytorch版》 7.3 网络中的网络(NiN)

LeNet、AlexNet和VGG的设计模式都是先用卷积层与汇聚层提取特征&#xff0c;然后用全连接层对特征进行处理。 AlexNet和VGG对LeNet的改进主要在于扩大和加深这两个模块。网络中的网络&#xff08;NiN&#xff09;则是在每个像素的通道上分别使用多层感知机。 import torch fr…

Jetpack Compose干货,如何让Compose Dialog从屏幕任意方向进入

一、前言 来个效果图&#xff0c;基于Compose Dialog&#xff0c;最终要实现的库能力如下&#xff1a; 这里使用的是这个包下面的&#xff1a; androidx.compose.ui.window.Dialog androidx.compose.material3.AlertDialog它内部调用的也是androidx.compose.ui.window.Dialog …

eCognition易康操作教程(一):如何利用eCognition易康软件进行影像分割之棋盘分割、四叉树分割、光谱差异分割

一、新建工程 使用eCognition新建工程ImageSegmentation&#xff0c;加载影像数据&#xff0c;并编辑图层名称&#xff0c;将Layer 1、Layer 2、Layer 3、Layer 4的 Layer Alias 分别改为 Blue、Green、Red、如图1-1&#xff0c;图1-2所示&#xff1a; 图 1-1 图 1-2 设置加载…

CSDN博客去水印方法

直接在 创作中心->博客 设置这里关了好像就行了&#xff0c;之前方法是找图片链接?后面的一大串字符给去掉。

k8s 自动扩缩容HPA原理及adapter配置详解

大家好&#xff0c;我是蓝胖子&#xff0c;都知道&#xff0c;k8s拥有自动扩缩容机制HPA&#xff0c;我们能够通过配置针对不同的扩缩容场景进行自动扩缩容&#xff0c;往往初学者在面对其中繁多配置的时候会学了又忘记&#xff0c;今天我将会以一种不同的视角&#xff0c;结合…

【2023年研究生数学建模】E题代码与技术文档

2023年数学建模国赛C题 问题1.1Q1_1_judge.mQ1_1_time.m 问题1.2Q1_2_1.mQ1_2_BP.m 技术文档写在最后 目前已经完成E题的第一、二问的代码和文档&#xff0c;分享一部分给大家&#xff0c;欢迎一起来交流谈论哦。 问题1.1 Q1_1_judge.m clc clear dataxlsread(a表.xlsx); for…

七天学会C语言-第六天(指针)

1.指针变量与普通变量 指针变量与普通变量是C语言中的两种不同类型的变量&#xff0c;它们有一些重要的区别和联系。 普通变量是一种存储数据的容器&#xff0c;可以直接存储和访问数据的值。&#xff1a; int num 10; // 定义一个整数型普通变量num&#xff0c;赋值为10在例…

HTTP 协商缓存 ETag、If-None-Match

&#xff08;1&#xff09;浏览器第一次跟服务器请求一个资源&#xff0c;服务器在返回这个资源的同时&#xff0c;在respone header加上ETag。 ETag是服务器根据当前请求的资源生成的一个唯一标识。 这个唯一标识是一个字符串&#xff0c;只要资源有变化这个串就不同&#xff…

一文带你实现从PDF到Word文件的相互转换

一文带你实现从PDF到Word文件的相互转换 01. 前期准备 模块安装 pip install pdf2docx or使用国内镜像源进行安装&#xff08;清华的镜像源&#xff09; pip install pdf2docx -i https://pypi.tuna.tsinghua.edu.cn/simple 02. 模块介绍 pdf2docx是一个Python模块&#xff0…

荣湃隔离放大器Pai8300 5.0kVRMS完美代替TI AMC1301

深力科推出了用于电流检测的隔离放大器Pai8300&#xff0c;实现对电流快速、精确的检测。Pai8300采用全新架构&#xff0c;叠加荣湃专利智能分压技术&#xff0c;保证低功耗&#xff0c;高精度和良好的隔离性能&#xff0c;广泛应用于电机驱动&#xff0c;逆变器&#xff0c;变…

Intel酷睿和AMD锐龙

Intel酷睿系列&#xff0c;主要分i3、i5、i7、i9 如&#xff1a;Intel 酷睿i5 10210U i5&#xff1a;品牌修饰符。 10&#xff1a;代次指示符。 210&#xff1a;sku编号。 常见后缀&#xff1a; G1-G7&#xff1a;集显等级。 U&#xff1a;低功耗。 H&#xff1a;标压版…

AI创作工具-AI创作工具技术解读

创作是广告、文章、小说、社交媒体内容等各个领域的关键&#xff0c;但它通常需要创作者花费大量时间和精力&#xff0c;思考、编写和编辑内容。有时候&#xff0c;创作者可能面临写作灵感枯竭、时间紧迫或需要大量内容的情况。 添加图片注释&#xff0c;不超过 140 字&#xf…

2023华为杯数学建模研赛E题全解析

2023华为杯数学建模研赛E题解析&#xff0c;完整版已出!!! 包含所有模型、代码、结果&#xff0c;39页技术文档&#xff0c;详细内容如下! 免费版链接已放在下面&#xff0c;需要的同学可以直接自取~ 【云顶数模】2023研究生数学建模免费链接&#xff1a; https://pan.baid…

Java反序列化和php反序列化的区别

文章目录 PHP反序列化漏洞反序列化漏洞什么是反序列化漏洞&#xff1f;修改序列化后的数据&#xff0c;目的是什么&#xff1f; Java反序列化漏洞反序列化漏洞 PHP反序列化漏洞 序列化存在的意义是为了传输数据/对象&#xff0c;类是无法直接进行传输的。通过序列化后转换为字…

数据结构-----栈(栈的初始化、建立、入栈、出栈、遍历、清空等操作)

目录 前言 栈 1.定义 2.栈的特点 3.栈的储存方式 3.1数组栈 3.2链栈 4.栈的基本操作&#xff08;C语言&#xff09; 4.1初始化 4.2判断是否满栈 4.3判断空栈 4.4 入栈 4.5 出栈 4.6获取栈顶元素 4.7遍历栈 4.8清空栈 完整代码示例 前言 大家好呀&#xff01;今天我…

python使用websocket实现多端数据同步,多个websocket同步消息,断开链接自动清理

我使用的是flask_sock这个模块&#xff0c;我的使用场景是&#xff1a;可以让数据多端实时同步。在游戏控制后台和游戏选手的ipad上都可以实时调整角色的技能和点数什么的&#xff0c;所以需要这样的一个功能来实现数据实时同步。 下面是最小的demo案例&#xff1a; from fla…