LeetCode # 111 二叉树的最小深度

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

示例:

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

    3
   / \
  9  20
    /  \
   15   7
返回它的最小深度  2.

解题思路:树的问题,我们依然采用递归的方法。若当前节点为null,则返回0,若当前节点的左子树或者右子树其中有一个为null,则直接返回不为null的子树的深度+1,否则,直接返回左右子树的最小深度+1。

class Solution {
    public int minDepth(TreeNode root) {
        if(root == null){
            return 0;
        }
        int leftDepth = minDepth(root.left);
        int rightDepth = minDepth(root.right);
        if(leftDepth==0 || rightDepth==0){
            return leftDepth+rightDepth+1;
        }
        return Math.min(leftDepth,rightDepth)+1;
    }
}

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页