算法---找树左下角的值

news/2024/6/18 21:06:22 标签: 算法, 深度优先

题目

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

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

示例 1:
在这里插入图片描述

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

在这里插入图片描述

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

提示:

二叉树的节点个数的范围是 [1,104]
-231 <= Node.val <= 231 - 1

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/find-bottom-left-tree-value
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解决思路

使用DFS和BFS都可以

解决方法

    var curMaxDepth = 0
    var curMax = 0
    fun findBottomLeftValue(root: TreeNode?): Int {
        //
        curMax = root?.`val`!!
        dfs(root, curMaxDepth)
        return curMax

    }

    fun dfs(root: TreeNode?, depth: Int) {
        if (root == null) {
            return
        }
        if (depth >= curMaxDepth) {
            curMaxDepth = depth
            curMax = root.`val`
        }
        dfs(root.right, depth + 1)
        dfs(root.left, depth + 1)
    }

总结

1.BFS 可以从左往右,也可以从右往左
2.BFS必须要借助队列数据结构,而DFS是循环+递归


http://www.niftyadmin.cn/n/177921.html

相关文章

打造有竞争力的SaaS 营销策略,赢得客户和市场份额

事实上&#xff0c;SaaS 营销不过是推广您的产品以提高产品知名度并将其销售给更多受众的过程。您可以通过各种数字渠道和内容营销平台来营销您的 SaaS 业务。 SaaS内容营销 内容营销是任何 SaaS 业务中最受欢迎和最有效的营销策略之一。最重要的是要确保您发布的内容符合目标…

2023年多领域控股行业研究报告

第一章 行业概况 1.1 多领域控股概况 多领域控股是指同时在三个或更多经济领域内控股投资&#xff0c;但没有单个业务贡献一半以上收入的企业集团&#xff0c;旗下通常有多个从事不同业务、各自独立运作的子公司。多领域控股公司通常通过收购或者战略合作的方式&#xff0c;获…

【刷题之路】LeetCode 746. 使用最小花费爬楼梯

【刷题之路】LeetCode 746. 使用最小花费爬楼梯一、题目描述二、解题方法——动态规划思路分析代码实现改进一、题目描述 原题连接&#xff1a; 746. 使用最小花费爬楼梯 题目描述&#xff1a; 题目描述&#xff1a; 给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯…

JAVA---数据输入与输出

1.什么是输入流与输出流 在Java中&#xff0c;把所有的输入和输出都当作流&#xff08;stream&#xff09;来处理。流是按一定顺序排列的数据集合。例如&#xff0c;从键盘或文件输入的数据&#xff0c;向显示器或文件输出的数据等都可以看作是一个个的数据流。 输入数据时&…

网络编程套接字( TCP协议通讯流程)

目录 1、绑定失败问题 2、TCP协议通讯流程 三次握手的过程 数据传输的过程 四次挥手的过程 TCP和UDP对比 1、绑定失败问题 当我们测试网络代码时&#xff0c;先将服务端绑定8080端口运行&#xff0c;然后运行客户端&#xff0c;并让客户端连接当前服务器&#xff1a; 当有客户…

摸着OpenAI过河,百度文心一言能否“重拳出击”?

“文心一言”对标ChatGPT&#xff0c;饱含争议。文心一言作为一款语言大模型&#xff0c;并提出了自己在技术对就业的影响方面的理解&#xff0c;现阶段正处于摸着OpenAI过河的时候&#xff0c;路该如何走&#xff1f; GPT-4太惊艳&#xff0c;压力给到文心一言 这段时间&…

Android生成签名证书(.keystore)

命令行方式&#xff1a; 首先安装JRE环境&#xff0c;然后使用JRE自带的keytool命令生成签名证书。 keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore -alias是证书别名&#xff0c;建议使用英文字母和数字 -keystore是…

Spring入门之反射机制

Spring相关概念1.1初始Spring在这一节&#xff0c;主要通过以下两个点来了解下Spring:1.1.1Spring家族官网:https://spring.io&#xff0c;从官网我们可以大概了解到&#xff1a;Spring能做什么:用以开发web、微服务以及分布式系统等光这三块就已经占了JavaEE开发的九成多。Spr…