leetcode 513. Find Bottom Left Tree Value 找树左下角的值 (简单)

给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。

假设二叉树中至少有一个节点。

示例 1:

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

示例 2:

输入: [1,2,3,4,null,5,6,null,null,7]
输出: 7

提示:

  • 二叉树的节点个数的范围是 [1,104]
  • -231

求二叉树的最左下树节点的值,也就是最后一行左数第一个值,可以用先序遍历来做,维护一个最大尝试和该尝试的节点值,由于先序遍历遍历的顺序是根左右,所以每一行最左边的节点肯定最先先遍历到,由于是新一行,那么当前尝试肯定比之前的最大深度大,所以可以更新最大深度为当前深度,节点值res为当前节点值,这样在遍历到该行其他节点时就不会更新res了

3.1 Java实现

public class Solution {
    public int findBottomLeftValue(TreeNode root) {
        int maxDepth = 1;
        int[] res = new int[]{root.val};
        helper(root, 1, maxDepth, res);
        return res[0];
    }

    void helper(TreeNode node, int depth, int maxDpeth, int[] res) {
        if (node == null) {
            return;
        }
        if (depth > maxDpeth) {
            maxDpeth = depth;
            res[0] = node.val;
        }
        helper(node.left, depth + 1, maxDpeth, res);
        helper(node.right, depth + 1, maxDpeth, res);
    }
}
  • 2022/9/30 今天有点着急

Original: https://www.cnblogs.com/okokabcd/p/16745872.html
Author: okokabcd
Title: leetcode 513. Find Bottom Left Tree Value 找树左下角的值 (简单)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/609639/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java ThreadLocal 与 OOM

    ThreadLocal 实例通常都是 static 类型,用于关联线程和线程上下文。 ThreadLocal 提供线程内的局部变量,不同的线程之间不会相互干扰,这种变量在线程的生命…

    Java 2023年5月29日
    074
  • 02、Java的lambda表达式和JavaScript的箭头函数

    前言 在JDK8和ES6的语言发展中,在Java的lambda表达式和JavaScript的箭头函数这两者有着千丝万缕的联系;本次试图通过这篇文章弄懂上面的两个”语法糖…

    Java 2023年6月13日
    097
  • 4.环境搭建

    1.springboot项目: 创建provider作为服务提供方 创建consumer作为服务调用方 1.provider代码示例 结构如图 1.启&amp…

    Java 2023年6月5日
    055
  • vue和java图片上传

    @ 前言 – 1、流程及图 2、前端: 1.表单提交 2.上传图片及相关方法 3、配置文件application.xml 3、后端 * 1.控制器 2.上传接口 3.七…

    Java 2023年6月13日
    071
  • .Net MVC实现全局异常捕捉返回通用异常页面的一种方式

    阅文时长 | 0.54分钟字数统计 | 876字符主要内容 | 1、引言&背景 2、部分通用设计代码 3、声明与参考资料『.Net MVC实现全局异常捕捉返回通用异常页面的…

    Java 2023年6月5日
    080
  • 【力扣】19. 删除链表的倒数第 N 个结点

    给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗? 示例 1: 输入:head = [1,2,3,4,5], n = 2输出:[1…

    Java 2023年6月8日
    056
  • AOP面向切面编程简单介绍与应用

    AOP面向切面编程 什么是AOP AOP (Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技…

    Java 2023年6月13日
    060
  • 好用到爆!GitHub 星标 32.5k+的命令行软件管理神器,功能真心强大!

    前言(废话) 本来打算在公司偷偷摸摸给星球的用户写一篇编程喵整合 MongoDB 的文章,结果在通过 brew 安装 MongoDB 的时候竟然报错了。原因很简单,公司这台 Mac…

    Java 2023年6月9日
    080
  • 1

    1 posted @2022-09-25 23:44 山海自有归期 阅读(21 ) 评论() 编辑 Original: https://www.cnblogs.com/ljq202…

    Java 2023年6月7日
    073
  • 微信登录

    微信配置文件 微信开放平台 appid wx.open.app-id=你的appid 微信开放平台 appsecret wx.open.app-secret=你的secret 微信…

    Java 2023年6月15日
    085
  • 1.欧拉算法求100以内素数个数

    class test { private static boolean[] check = new boolean[101];//这里定100会有越界错误 private stat…

    Java 2023年6月9日
    0177
  • 解决云服务器响应慢,网页加载慢的问题

    问题: 本文接上一次博客,云服务发布springboot项目踩过的坑 自从上次,一咬牙买了阿里云的服务器(虽然是白嫖的15天试用期)。 但是有一个问题一直困扰着我,如鲠在喉! 非常…

    Java 2023年6月6日
    069
  • CSharp: Visitor Pattern

    csharp;gutter:true; /// /// Summary description for Employee.</p> <pre><cod…

    Java 2023年6月16日
    058
  • 十大排序

    十大排序 import java.util.ArrayList; import java.util.Collections; import java.util.List; impo…

    Java 2023年6月8日
    072
  • 在 Gradle 中使用 MyBatis Generator

    在 Intellij IDEA 中结合 Gradle 使用 MyBatis Generator 逆向生成代码 Info: JDK 1.8 Gradle 2.14 Intellij …

    Java 2023年5月30日
    092
  • Java终止线程的三种方式

    停止一个线程通常意味着在线程处理任务完成之前停掉正在做的操作,也就是放弃当前的操作。 在 Java 中有以下 3 种方法可以终止正在运行的线程: 使用退出标志,使线程正常退出,也就…

    Java 2023年5月29日
    081
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球