力扣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);
    }
}

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

相关推荐
计算机毕设VX:Fegn08958 分钟前
计算机毕业设计|基于springboot + vue个人博客系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
gihigo199815 分钟前
基于反步法的路径追踪控制
算法
Jim-2ha016 分钟前
【JavaScript】常见排序算法实现
javascript·算法·排序算法
2501_9466756418 分钟前
Flutter与OpenHarmony打卡轮播图组件
java·javascript·flutter
王老师青少年编程21 分钟前
2025年12月GESP(C++二级): 黄金格
c++·算法·gesp·csp·信奥赛·二级·黄金格
独自破碎E26 分钟前
Spring Boot 3.x和2.x版本相比有哪些区别与改进?
java·spring boot·后端
Herbert_hwt32 分钟前
C语言位操作符详解:从入门到实战应用
c语言·算法
坚持学习前端日记35 分钟前
个人运营小网站的最佳策略
java·学习·程序人生·职场和发展·创业创新
幽络源小助理40 分钟前
SpringBoot+Vue美食网站系统源码 | Java餐饮项目免费下载 – 幽络源
java·vue.js·spring boot
k***921641 分钟前
C++:继承
java·数据库·c++