目录
一、题目
题目链接:100. 相同的树 - 力扣(LeetCode)
题目描述:
给你两棵二叉树的根节点
p
和q
,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
二、思路
我们需要判断两颗树是否相同,分治的思想,(模范前序),先判断根节点相不相同,再判断左子树相不相同,再判断右子树相不相同。如果访问到NULL节点,说明前面的一定都相同,为true,否则就false,且只有当根节点,左子树,右子树都相同才为true.
三、代码
bool isSameTree(struct TreeNode* p, struct TreeNode* q){
if (p == NULL && q == NULL)
{
return true;
}
if (p == NULL || q == NULL)
{
return false;
}
if (p->val != q->val )
{
return false;
}
return isSameTree(p->left, q->left)
&& isSameTree(p->right, q->right);
}