Open
Description
- 100. 相同的树
- 给你两棵二叉树的根节点
p
和q
,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 - 递归定义法:按照定义法来做
- 定义: 如果两棵树相等则左子树和左子树相同, 右子树和右子树相同, 且根的值相同
- 分类讨论终止: pq其中一个为空, 直接返回false; pq均为空, 则返回true
class Solution {
public:
//递归定义+分类讨论
//定义: 如果两棵树相等则左子树和左子树相同, 右子树和右子树相同, 且根的值相同
//分类讨论终止: pq其中一个为空, 直接返回false; pq均为空, 则返回true
bool isSameTree(TreeNode* p, TreeNode* q) {
if(!q && !p) return true;
if(p && q && p->val == q->val) return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
return false;
}
};