语言:C语言
思路:先判断特殊情况>然后依次比较每个节点>两个数在比较中完全重合,即为相同的树。
如图所示,如果每一步判断都是完全相同(图中步骤我没有画完),此时两颗树就是相同的树
如果两颗树不相同,如下图所示,在步骤②就会被判false
总的来说这题思路总结为:同步
来看代码
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);
}
提交结果击败了100%的用户