111. 二叉树的最小深度

题目链接:111. 二叉树的最小深度

要注意左子树为空右子树不为空 或者右子树不为空左子树为空的情况
如果不注意的话 最小深度可能就是1 这是错误的

全代码:

class Solution {
public:
    int getDepth(TreeNode* Node)
    {
        if(Node == NULL) return 0;
        int left_hight = getDepth(Node ->left);
        int right_hight = getDepth(Node ->right);

        
        if(Node ->left == NULL && Node ->right !=NULL)
        {//左子树为空且右子树不为空,最小深度为1+右子树的深度
            return 1 + right_hight;
        }
        if(Node ->right == NULL && Node ->left != NULL)
        {//右子树为空且左子树不为空,最小深度为1 + 左子树深度
            return 1 + left_hight;
        }
        //返回当前层数+最小深度
        int result = 1 + min(left_hight,right_hight);
        return result;
    }

    int minDepth(TreeNode* root) {
        return  getDepth(root);
    }
};

你可能感兴趣的:(数据结构,二叉树)