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

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

相关推荐
鶴哥只手遮天几秒前
《OpenFOAM 源码深度剖析》系列-第 7 章 网格与拓扑体系:`polyMesh`、`primitiveMesh` 与 patch
算法·开源
CHEEVEN_QY8 分钟前
热仿真在液冷板设计中的应用价值与局限性客观评估
人工智能·算法
无忧.芙桃15 分钟前
图的精髓:邻接矩阵与遍历全解析
c++·算法·面试·深度优先·广度优先
Nil20817 分钟前
leetcode 1143最长公共子序列
算法·leetcode·职场和发展
脚踏实地,坚持不懈!20 分钟前
Linux 内存回收机制:水位线、kswapd 与 Direct Reclaim
linux·jvm·算法
_wxd66629 分钟前
二叉搜索树(BST)万字详解:概念、操作、性能分析与 C++ 实现
数据结构·c++·二叉搜索树
Logic10129 分钟前
C语言/数据结构动态规划题解:字符串变回文的最少操作次数——最长回文子序列(LPS)
c语言·数据结构·算法·动态规划·时间复杂度·回文串·最长回文子序列
薛之谦_32 分钟前
JAVA 多线程编程:从基础原理到实战应用
java·开发语言
LMT_Lanmantech33 分钟前
Creo许可降本增效:不增购,也能让现有许可发挥更大价值
java·大数据·开发语言
Shaoshing36 分钟前
Serializable
java