详细思路

dfs,形参root,求出root树的最小深度,
 
精确定义
dfs,形参root,求出root树的最小深度,root为叶节点边界返回1,如果根结点的左右子树一棵有而一棵为空,最小深度绝对不是1,而要看非空的子树的最小深度,所以只递推非空节点,而不递推空节点
class Solution {
public:
    int minDepth(TreeNode* root) {
        if(!root)return 0;
        return dfs(root);
    }

    int dfs(TreeNode*root){
        if(!root->left&&!root->right)return 1;
        if(root->left&&!root->right)return 1+dfs(root->left);
        else if(!root->left&&root->right)return 1+dfs(root->right); 
        else return 1+min(dfs(root->left),dfs(root->right));
    }
};
踩过的坑
根结点不是叶节点,也就是说

 

的最小深度是5不是1
root为空是不应该发生的,root为叶节点就一定要返回1,
如果根结点的左右子树一棵有而一棵为空,最小深度绝对不是1,而要看非空的子树的最小深度

 

posted on 2021-08-01 23:52  offer快到碗里来~  阅读(47)  评论(0)    收藏  举报