美文网首页
111. 二叉树的最小深度

111. 二叉树的最小深度

作者: bangbang2 | 来源:发表于2020-08-17 08:56 被阅读0次
    image.png

    求最大深度比较简单,因为有子树为空,肯定不是最大
    但求最小深度,为空的值更小,但是却不能当作最小深度,所以只有返回另一子树的深度
    1:如果左右子树都为null,会返回1
    2:进行左子树和右子树的递归
    3:如果只有左子树为null,就返回右子树,如果只有右子树,就返回左子树
    4:都不为空,那就返回:min(left,right)+1

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        public int minDepth(TreeNode root) {
           if(root==null) return 0;
           if(root.left==null&&root.right==null) return 1;
    
           int left=minDepth(root.left);
           int right=minDepth(root.right);
           if(root.left==null&&root.right!=null) return right+1;
           if(root.left!=null&&root.right==null) return left+1;
           return Math.min(left,right)+1;
        }
    }
    

    相关文章

      网友评论

          本文标题:111. 二叉树的最小深度

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