力扣513 找树左下角的值 java实现

  1. 找树左下角的值

给定一个二叉树的 根节点 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

该题需要用两个树分别记录当前最大深度以及元素,其他只需要先遍历左侧即可。具体实现代码如下:

java 复制代码
public class hot {
    public static void main(String[] args) {   // 测试用
        TreeNode treeNode = new TreeNode(2);
        treeNode.left = new TreeNode(1);
        treeNode.right = new TreeNode(3);
        hot hot = new hot();   // 该题没有选择静态方法,所以需要创建实例对象
        System.out.println(hot.findBottomLeftValue(treeNode));
    }

    int ans;            // 两个变量来记录当前的最大深度最左侧值
    int deep = 0;

    public int findBottomLeftValue(TreeNode root) {
        ans = root.val;    // 题目规定二叉树节点大于等于1,所以一定有根节点,不用判断
        dfs(root, 0);
        return ans;
    }

    public void dfs(TreeNode root, int depth){
        if (root == null){
            return;
        }
        if (root.left == null && root.right == null){
            if (depth > deep){
                deep = depth;
                ans = root.val;
            }
        }
        dfs(root.left, depth + 1);
        dfs(root.right, depth + 1);
    }
}

以上为记录分享用,代码较差请见谅

相关推荐
YDS8296 分钟前
黑马点评 —— 分布式锁详解加源码剖析
java·spring boot·redis·分布式
迷藏49427 分钟前
**发散创新:基于 Rust的开源权限管理系统设计与实战**在现代软件架构中,**权限控制**早已不
java·开发语言·rust·开源
升鲜宝供应链及收银系统源代码服务41 分钟前
《IntelliJ + Claude Code + Gemini + ChatGPT 实战配置手册升鲜宝》
java·前端·数据库·chatgpt·供应链系统·生鲜配送
daidaidaiyu1 小时前
Nacos实例一则及其源码环境搭建
java·spring
lvxiangyu111 小时前
MPPI 算法证明重构:基于无穷维泛函变分与 KL 散度的构造性推导
算法·重构·最优控制·随机最优控制
2301_818419011 小时前
C++中的解释器模式变体
开发语言·c++·算法
小江的记录本1 小时前
【Redis】Redis全方位知识体系(附《Redis常用命令速查表(完整版)》)
java·数据库·redis·后端·python·spring·缓存
ab1515171 小时前
3.25完成*23、*24、*28、*30、*33、*38、*39、*40
算法
摇滚侠1 小时前
Java 项目《谷粒商城-1》架构师级Java 项目实战,对标阿里 P6-P7,全网最强,实操版本
java·开发语言
颜酱1 小时前
回溯算法实战练习(3)
javascript·后端·算法