class Solution {
public:
bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2)
{
if(!pRoot2) return false;
if(pRoot1){
return isEqual(pRoot1, pRoot2) || isEqual(pRoot1->left, pRoot2)||isEqual(pRoot1->right, pRoot2);
}
else return false;
}
bool isEqual(TreeNode* root1, TreeNode * root2){
if(!root1 && !root2) return true;
if(root1 && root2){
if(root1->val == root2->val){
return isEqual(root1->left, root2->left) && isEqual(root1->right, root2->right);
}else{
return false;
}
}
return root1 && !root2;
}
};