class Solution {
public:
// 仍然是前序遍历,逐渐减少 子树的高度即可,
bool isSubStructure(TreeNode* A, TreeNode* B) {
if(A == nullptr || B == nullptr) return false;
return recur(A, B) || isSubStructure(A->left, B) || isSubStructure(A->right, B);
}
private:
// 判定条件
bool recur(TreeNode *A, TreeNode *B) {
if(B == nullptr) return true;
if(A == nullptr || A->val != B->val) return false;
return recur(A->left, B->left) && recur(A->right, B->right);
}
};