/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
bool isSubStructure(TreeNode* A, TreeNode* B) {
return (A!=nullptr && B!=nullptr) && (recurr(A,B)|| isSubStructure(A->left,B) ||isSubStructure(A->right,B)); //在AB不空的情况下满足这些条件,空了就直接0了
}
bool recurr(TreeNode*A,TreeNode*B){
if(B==nullptr) return true;
if(A==nullptr || A->val!=B->val) return false;
return recurr(A->left,B->left) && recurr(A->right,B->right);
}
};