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

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

相关推荐
亭上秋和景清2 小时前
指针进阶:函数指针详解
开发语言·c++·算法
leoufung2 小时前
LeetCode 22:Generate Parentheses 题解(DFS / 回溯)
算法·leetcode·深度优先
FMRbpm2 小时前
队列练习--------最近的请求次数(LeetCode 933)
数据结构·c++·leetcode·新手入门
Neoest3 小时前
【EasyExcel 填坑日记】“Syntax error on token )“: 一次编译错误在逃 Runtime 的灵异事件
java·eclipse·编辑器
自在极意功。3 小时前
Web开发中的分层解耦
java·microsoft·web开发·解耦
是一个Bug3 小时前
ConcurrentHashMap的安全机制详解
java·jvm·安全
断剑zou天涯3 小时前
【算法笔记】bfprt算法
java·笔记·算法
番石榴AI3 小时前
java版的ocr推荐引擎——JiaJiaOCR 2.0重磅升级!纯Java CPU推理,新增手写OCR与表格识别
java·python·ocr
youngee113 小时前
hot100-47岛屿数量
算法