题目链接:另一颗子树
先来看下题目与例题:
这题直接将解题思路会好点
解题思路:
bool isSame(struct TreeNode* p,struct TreeNode* q)
{
if(p==NULL&&q==NULL)
return true;
if(p==NULL||q==NULL)
return false;
if(p->val!=q->val)
return false;
return isSame(q->left,p->left)&&isSame(q->right,p->right);
}
bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot){
if(root==NULL&&subRoot==NULL)
return true;
if(root==NULL||subRoot==NULL)
return false;
return isSame(root,subRoot)||
isSubtree(root->left,subRoot)||
isSubtree(root->right,subRoot);
}
若本篇对您有帮助,希望能获得您的赞!