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/620676/

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

(0)

大家都在看

  • 计算机组成原理——组成篇

    计算机的总线 1 、总线的作用及概述 解决设备间通讯问题。 总线是为了解决不同设备之间的通信问题。 总线可以连接CPU和IO设备。 2 、总线分类:片内总线、系统总线 片内总线:连…

    数据库 2023年6月16日
    050
  • Queue

    队列( Queue)是一种经常使用的集合。 Queue实际上是实现了一个先进先出(FIFO:First In First Out)的有序表 Queue接口常用的实现类是 Linke…

    数据库 2023年6月9日
    085
  • SpringBoot 搭建基于 MinIO 的高性能存储服务

    1.什么是MinIO MinIO是根据GNU Affero通用公共许可证v3.0发布的高性能对象存储。它与Amazon S3云存储服务兼容。使用MinIO构建用于机器学习,分析和应…

    数据库 2023年6月14日
    0143
  • Mysql数据库存取原理及性能优化

    一、Mysql的系统架构图 二、Mysql存储引擎 Mysql中的数据是通过一定的方式存储在文件或者内存中的,任何方式都有不同的存储、查找和更新机制,这意味着选择不同的方式对于数据…

    数据库 2023年6月14日
    092
  • Java并发

    Java并发 JAVA技术交流群:737698533 CAS compare and swap 比较并交换,cas又叫做无锁,自旋锁,乐观锁,轻量级锁 例如下面的代码,如果想在多线…

    数据库 2023年6月16日
    070
  • MySQL视图

    视图 常见的数据库对象 视图概述 为什么使用视图 可以帮助我们使用表中的 部分数据,对其修改可以改变原来表中的值 可以简化查询 控制数据的访问(权限) 视图的理解 视图是一个本身没…

    数据库 2023年5月24日
    060
  • Tomcat的关于Web应用的类加载器

    类加载器的补充 一 类加载器的结构 二 类加载器的源码 源码视频 ClassLoader: 类加载器的基础实现,双亲委派就是这里实现的 SecureClassLoader: 安全相…

    数据库 2023年6月11日
    064
  • 你的 SQL 还在回表查询吗?快给它安排覆盖索引

    什么是回表查询 小伙伴们可以先看这篇文章了解下什么是聚集索引和辅助索引:Are You OK?主键、聚集索引、辅助索引,简单回顾下,聚集索引的叶子节点包含完整的行数据,而非聚集索引…

    数据库 2023年5月24日
    078
  • B树-查找

    B树系列文章 1. B树-介绍 2. B树-查找 3. B树-插入 4. B树-删除 查找 假设有一棵3阶B树,如下图所示。 下面说明在该B树中查找 52的过程 首先,从根结点出发…

    数据库 2023年6月14日
    0135
  • Read View的可见性判断理解

    读了 @SnailMann大佬【MySQL笔记】正确的理解MySQL的MVCC及实现原理 收益颇丰,非常感谢! 但对其中如何判断事务是否可见性还是不太理解,于是作了本文,在原博客基…

    数据库 2023年6月16日
    068
  • DRF使用缓存

    在做项目的时候,有时很多数据都是经常被访问的而且数据是基本不变的,比如省市区的数据是经常被用户查询使用的,而且数据基本不变化,所以我们可以将省市区数据进行缓存处理,减少数据库的查询…

    数据库 2023年6月14日
    062
  • Tomcat总体架构(二)

    目录 八、PipeLine 和 Valve 九、Connector 十、Executor 十一、Bootstrap 和 Catalina 十二、组件总结 N、结束 视频 八、Pip…

    数据库 2023年6月11日
    0100
  • mybatis SelectKey解析

    1.selectKey介绍及作用 resultType:sql返回的java类型 statementType:STATEMENT|PREPARED|CALLABLE三种默认PREP…

    数据库 2023年6月16日
    087
  • jdbc-实现用户登录业务(解决sql注入问题)

    package com.cqust; import java.sql.*;import java.util.HashMap;import java.util.Map;import …

    数据库 2023年5月24日
    059
  • SpringSecurity

    一、SpringSecurity介绍 1、介绍 Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于Spring的应用程序的事实上的标…

    数据库 2023年6月6日
    082
  • [LeetCode]1. 两数之和

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个…

    数据库 2023年6月9日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球