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

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

相关推荐
Flittly3 小时前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
小兔崽子去哪了3 小时前
Java 生成二维码解决方案
java·后端
BothSavage7 小时前
Trae远程开发中DeepSeek自定义模型4054错误的排查与修复
算法
小林ixn7 小时前
从暴力到KMP:一道题彻底搞懂字符串匹配的前世今生
算法
人活一口气7 小时前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
烬羽9 小时前
字符串算法入门:从反转字符串到回文判断,面试不再慌
算法·面试
NE_STOP9 小时前
Vibe Coding -- 完整项目案例实操
java
荣码9 小时前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
SimonKing9 小时前
Google第三方授权登录
java·后端·程序员
明月光8189 小时前
从一行 @Builder 说起:重新拾起 Java 的 Lombok、注解与 Builder 模式
java