思路:is是去找那个点,helper是判断这个点是不是。
是的情况:当前值匹配,左右子树匹配。base case:BNULL,匹配上了,return true;ANULL,查询过头了,return false。
class Solution {
public:
bool isSubStructure(TreeNode* A, TreeNode* B) {
return (A!=NULL&&B!=NULL)&&(helper(A,B)||isSubStructure(A->left,B)||isSubStructure(A->right,B));
}
bool helper(TreeNode* root1,TreeNode* root2){
if(root2==NULL) return true;
if(root1==NULL) return false;
return root1->val==root2->val&&helper(root1->left,root2->left)&&helper(root1->right,root2->right);
}
};