/* struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}};*/class Solution {public:bool HasSubtree(TreeNode* A, TreeNode* B){if(!A || !B) return false;if(isPart(A,B)) return true;return (HasSubtree(A->left,B) || HasSubtree(A->right,B));}bool isPart(TreeNode *A1,TreeNode *B1){if(!B1) return true;if(!A1 || A1->val != B1->val) return false;return (isPart(A1->left,B1->left) && isPart(A1->right,B1->right));}};