LeetCode第111题 - 二叉树的最小深度

这篇具有很好参考价值的文章主要介绍了LeetCode第111题 - 二叉树的最小深度。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目

解答

方案一

class Solution {
    public int minDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }

        LinkedList<TreeNode> nodes = new LinkedList<>();
        nodes.add(root);
        root.val = 1;

        int min = Integer.MAX_VALUE;
        while (!nodes.isEmpty()) {
            TreeNode node = nodes.poll();

            if (node.left == null && node.right == null) {
                min = Math.min(min, node.val);
                continue;
            }

            if (node.left != null) {
                nodes.add(node.left);
                node.left.val = node.val + 1;
            }

            if (node.right != null) {
                nodes.add(node.right);
                node.right.val = node.val + 1;
            }
        }

        return min;
    }
}

方案二

class Solution {
    public int order(TreeNode node) {
        if (node == null) {
            return 0;
        }

        int left = order(node.left);
        int right = order(node.right);
        if (node.left != null && node.right != null) {
            return Math.min(left, right) + 1;
        }

        if (node.left != null) {
            return left + 1;
        }

        return right + 1;
    }

    public int minDepth(TreeNode root) {
        return order(root);
    }
}

要点

方案一不够优雅,全量计算了所有节点的路径长度,同时复用树节点中的val字段来保存数据。

依据树的递归定义,符合要求的节点要么在左子树,要么在右子树,因此可以利用这个特点,递归的针对树的每个节点的左、右子树,分别求解其最小深度值。这时注意需要针对非叶子节点做特殊的处理,假如某节点的左子树或者右子树为空,此时该节点不参与本计算。文章来源地址https://www.toymoban.com/news/detail-813796.html

到了这里,关于LeetCode第111题 - 二叉树的最小深度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 算法训练day16Leetcode104二叉树最大深度111二叉树最小深度222完全二叉树的节点个数

    https://www.bilibili.com/video/BV1Gd4y1V75u/?vd_source=8272bd48fee17396a4a1746c256ab0ae 用递归,但是什么顺序没想清楚 二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始) 二叉树节点的高度:指从该节点到叶子节点的最长简单路径边

    2024年01月16日
    浏览(16)
  • 代码随想录 Day13 二叉树 LeetCode T104 二叉树的最大深度 T111 二叉树的最小深度 T222完全二叉树的节点个数

    代码随想录 Day13 二叉树 LeetCode T104 二叉树的最大深度 T111 二叉树的最小深度 T222完全二叉树的节点个数

    以下题解的更详细思路来自于:代码随想录 (programmercarl.com) 二叉树的高度与深度 这里先补充一下二叉树深度和高度的概念 高度:二叉树中任意一个节点到叶子结点的距离 深度:二叉树中任意一个节点到根节点的距离 下面给出一个图便于理解 获取高度与深度的遍历方式 高度:后

    2024年02月08日
    浏览(16)
  • 每日一练:LeeCode-111. 二叉树的最小深度【二叉树】

    每日一练:LeeCode-111. 二叉树的最小深度【二叉树】

    本文是力扣LeeCode-111. 二叉树的最小深度 学习与理解过程,本文仅做学习之用,对本题感兴趣的小伙伴可以出门左拐LeeCode。 给定一个 二叉树 ,找出其 最小深度 。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量 。 说明: 叶子节点是指没有子节点的节点 。 示

    2024年02月02日
    浏览(11)
  • 第十五天|104.二叉树的最大深度、111.二叉树的最小深度、 222.完全二叉树的节点个数

    104.二叉树的最大深度 题目链接:104. 二叉树的最大深度 - 力扣(LeetCode) 111.二叉树的最小深度 题目链接:111. 二叉树的最小深度 - 力扣(LeetCode) 222.完全二叉树的节点个数 题目链接:222. 完全二叉树的节点个数 - 力扣(LeetCode)

    2024年02月11日
    浏览(13)
  • Java LeetCode篇-深入了解二叉树经典解法(三种方式实现:获取二叉树的最大深度)

    Java LeetCode篇-深入了解二叉树经典解法(三种方式实现:获取二叉树的最大深度)

    🔥博客主页: 【 小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍    文章目录         1.0 对称二叉树         1.1 判断对称二叉树实现思路         1.2 代码实现:判断对称二叉树         2.0 二叉树的最大深度         2.1 使用递归实现获取二叉树的最大深度思

    2024年02月05日
    浏览(19)
  • 二叉树OJ题:LeetCode--104.二叉树的最大深度

    二叉树OJ题:LeetCode--104.二叉树的最大深度

    朋友们、伙计们,我们又见面了,本期来给大家解读一下LeetCode中第104道二叉树OJ题,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! 数据结构与算法专栏: 数据结构与算法 个  人  主  页  : stackY、 C 语 言 专 栏 : C语言:从入门到精通  Leet

    2024年02月11日
    浏览(14)
  • leetcode 104——二叉树的最大深度

    leetcode 104——二叉树的最大深度

    给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 leetcode104 在解决树相关的问题时,一定要考虑能不能使用递归解决,如果使用递归解决,问题一般都能变得很简单,详情请看代码。

    2024年02月03日
    浏览(15)
  • 【LeetCode】104.二叉树的最大深度

    给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明:  叶子节点是指没有子节点的节点。 示例: 给定二叉树  [3,9,20,null,null,15,7] , 返回它的最大深度 3 。 我一开始是想通过深度优先搜索,每次到达子节点都更新一下当

    2024年02月15日
    浏览(16)
  • 面试150-69(Leetcode104二叉树的最大深度)

    代码: 0117

    2024年01月18日
    浏览(13)
  • leetcode做题笔记104. 二叉树的最大深度

    给定一个二叉树  root  ,返回其最大深度。 二叉树的  最大深度  是指从根节点到最远叶子节点的最长路径上的节点数。 本题要求二叉树的最大深度,可想到将左子树深度和右子树深度分别记录下来,最后比较左右子树深度输出最大深度 本题考察二叉树的应用,将左右子树

    2024年02月11日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包