题目: 树的子结构
输入两棵二叉树A和B,判断B是不是A的子结构.
class Solution {
public:
bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2)
{
if(pRoot1 == NULL || pRoot2 == NULL)
return false;
if(isSubtree(pRoot1,pRoot2))
return true;
else{
return HasSubtree(pRoot1->left,pRoot2)||
HasSubtree(pRoot1->right,pRoot2);
}
}
bool isSubtree(TreeNode* pRootA, TreeNode* pRootB){
if(pRootB == NULL)
return true;
if(pRootA == NULL)
return false;
if(pRootB->val==pRootA->val){
return isSubtree(pRootA->left,pRootB->left)&&
isSubtree(pRootA->right, pRootB->right);
}
else
return false;
}
};