麻烦写法
树的子结构
http://www.nowcoder.com/questionTerminal/6e196c44c7004d15b1610b9afca8bd88
class Solution {
public:
bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2)
{
if(pRoot2==NULL||pRoot1==NULL)
return false;
if(isSubtree(pRoot1,pRoot2))
return true;
if(HasSubtree(pRoot1->left,pRoot2)||HasSubtree(pRoot1->right,pRoot2)) //递归遍历节点
return true;
else
return false;
}
private:
bool isSubtree(TreeNode* pRoot1, TreeNode* pRoot2)
{
if(pRoot2==NULL)
return true;
if(pRoot1==NULL)
return false;
if(pRoot1->val==pRoot2->val) //相等则判断是否是子树
{
if(isSubtree(pRoot1->left,pRoot2->left)&&
isSubtree(pRoot1->right,pRoot2->right))
return true;
else
return false;
}
else
{
return false;
}
}
};