Minimum Depth of Binary Tree

二叉树的最小深度:

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

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

解答:

  原本如果求二叉树的高度的话,直接求两个子树的高度即可。但此时求二叉树的最小深度的话,应该要求

两个子树当中深度较低的一个,但是需要考虑的特殊情况是子树为空树,此时其不是叶子节点,则其不能拿来

用作计算深度的节点。

  代码如下:

class Solution {
public:
    int minDepth(TreeNode* root) {
        if(root==nullptr)
            return 0;
        int lheight=minDepth(root->left);
        int rheight=minDepth(root->right);
        //两个子树当中深度较小的
        if(lheight&&rheight)
            return min(lheight,rheight)+1;
        else if(lheight==0)
            return rheight+1;
        else
            return lheight+1;
    }
};

 

  

 

posted @ 2019-11-28 20:06  一只小菜鸡a  阅读(102)  评论(0)    收藏  举报