bool isSameTree(struct TreeNode* p, struct TreeNode* q) {
if (p != NULL && q != NULL) {
return p->val == q->val // 分解比较根左右
&& isSameTree(p->left, q->left)
&& isSameTree(p->right, q->right);
}
else if (p == NULL && q == NULL) {
return true;
}
else { // 一个为NULL,另一个不为NULL
return false;
}
}
bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot){
if (root != NULL) { // 子树是否等于树本身,或等于树的左子树或右子树
return isSameTree(root, subRoot)
|| isSubtree(root->left, subRoot)
|| isSubtree(root->right, subRoot);
}
return false;
}
【leetcode】572. 另一棵树的子树
于 2024-02-18 12:37:23 首次发布