美文网首页
求二叉树最小深度

求二叉树最小深度

作者: 键盘走过的日子 | 来源:发表于2018-03-10 23:46 被阅读390次

Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
给定二叉树,找出它的最小深度。最小深度是沿从根节点到最近叶节点的最短路径的节点数。
Java版本

public int run(TreeNode node) {
    if(node == null) 
        return 0;
    if(node.left == null && node.right == null) 
        return 1;
    if(node.left == null) 
        run(node.right) + 1;
    if(node.right == null)
        run(node.left) + 1;
    return Math.min(run(node.left), run(right));
}

算法解释:
整体采用递归算法,以根节点为起始点,分别算出左右孩子的最大深度,然后取出其最小值。
代码解释:
如果一个节点的左右孩子都为null,则此节点为叶子节点,所以其深度为1。

if(node.left == null && node.right == null) 
        return 1;

如果一个节点的左孩子为空,则计算其右孩子的深度,并返回最小值。
因为所有的节点都算一个深度值,所以要加1.

if(node.left == null) 
    run(node.right) + 1;
if(node.right == null)
    run(node.left) + 1;

相关文章

  • 111. Minimum Depth of Binary Tre

    题目 给定一个二叉树,求二叉树最小深度 解析 一个二叉树的最小深度,就是求左子树最小深度或者右子树最小深度,然后加...

  • 二叉树的最小深度

    求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。

  • [LeetCode OJ]- Minimum Depth of

    题目要求:求一颗二叉树的最小深度 思路:递归+左右子树深度比较,当子树为空时,返回0

  • 二叉树的最大/最小深度

    给定如下二叉树, 分别返回其最大深度4, 最小深度2。 求最大深度 按照广度遍历 跟层级遍历类似,最后返回总数组的...

  • 二叉树面试题基本问题

    二叉树的最大深度与最小深度 二叉树的最大深度 最大深度是指二叉树根节点到该树叶子节点的最大路径长度。而最小深度自然...

  • 二叉树高频面试题和答案

    先上二叉树的数据结构: 二叉树的题目普遍可以用递归和迭代的方式来解 1. 求二叉树的最大深度 2. 求二叉树的最小...

  • 二叉树算法题集合(java实现)

    先上二叉树的数据结构: 二叉树的题目普遍可以用递归和迭代的方式来解。 1.求二叉树的最大深度 2.求二叉树的最小深...

  • Swift - LeetCode - 二叉树的最小深度

    题目 二叉树的最小深度 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。...

  • Leetcode 111 二叉树的最小深度

    二叉树的最小深度 题目 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。...

  • 111.二叉树的最小深度

    题目#111.二叉树的最小深度 给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点...

网友评论

      本文标题:求二叉树最小深度

      本文链接:https://www.haomeiwen.com/subject/ryqifftx.html