LeetCode/111. 二叉树的最小深度

111. 二叉树的最小深度

给定一个二叉树,找出其最小深度。

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

说明: 叶子节点是指没有子节点的节点。

示例:

给定二叉树 [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

返回它的最小深度 2.

来源:力扣(LeetCode)
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解:

本题只需要找到左子树高度和右子树高度的最小值加一即可。具体来说进行递归调用,如果左子树为空,对右子树进行递归加一,如果右子树为空,对左子树进行递归加一,如果左右子树都存在,那么返回相对较小的高度加一的值。

具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public int minDepth(TreeNode root) {
if (root == null)
return 0;
if (root.left == null)
return minDepth(root.right) + 1;
if (root.right == null)
return minDepth(root.left) + 1;
return Math.min(minDepth(root.left), minDepth(root.right)) + 1;
}
}

Comments