两个树的节点对应的值一样,要满足刚好两棵树是一样的,或者一棵是另一棵的左子树,或者一棵是另一棵的右子树
如果s树都没找到t那就是不满足条件
class Solution {
bool isSameTree(TreeNode* p, TreeNode* q) {
if(!p && !q) return true;
if (!p || !q) return false;
return p->val == q->val && isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
}
public:
bool isSubtree(TreeNode* s, TreeNode* t) {
if (s == t) {
return true;
}
if (!s && t) {
return false;
}
if (!t) {
return true;
}
return s->val == t->val && isSameTree(s, t) || isSubtree(s->left,t) || isSubtree(s->right,t);
}
};