/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
class Solution {
public:
    bool HasSubtree(TreeNode* A, TreeNode* B)
    {
        if(!A || !B) return false;
        if(isPart(A,B)) return true;
        return (HasSubtree(A->left,B) || HasSubtree(A->right,B));
    }
    
    bool isPart(TreeNode *A1,TreeNode *B1)
    {
        if(!B1) return true;
        if(!A1 || A1->val != B1->val) return false;
        
        return (isPart(A1->left,B1->left) && isPart(A1->right,B1->right));
    }
};
2020-05-12
在牛客打卡20天,今天学习:刷题 6 道/代码提交 6 次
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务