/*
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));
}
};
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 次
全部评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享