//判断两棵树是否相等
bool _isSubtree(struct TreeNode* root, struct TreeNode* subRoot)
{
if(root==NULL&&subRoot==NULL)
{
return true;
}
if(root==NULL||subRoot==NULL)
{
return false;
}
if(root->val!=subRoot->val)
{
return false;
}
return _isSubtree(root->left,subRoot->left)&& _isSubtree(root->right,subRoot->right);
}
bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot){
if(root==NULL)
{
return false;
}
//以某节点为根的树和subRoot这个树是否相等
if(_isSubtree(root,subRoot))
{
return true;
}
//和左子树比较,左子树找到子树了,右子树就不需要找了
return isSubtree(root->left,subRoot)|| isSubtree(root->right,subRoot);
}
一颗树为另一棵树的子树
最新推荐文章于 2021-12-12 09:20:49 发布