logo头像

不忘初心,奋力前行

same tree

本文于393天之前发表,文中内容可能已经过时,如有问题,请联系我。

Same Tree

题目描述

Given two binary trees, write a function to check if they are equal or not.Two binary trees are considered equal if they are structurally identical and the nodes have the same value.

思路说明

其实这个题非常简单,算是判断一个树是不是另一个树子树的基础版,不需要调用另一个子程序,直接递归自己这个程序即可。就是判断树上每一个结点当前的情况:

  • p当前节点为空且q当前节点为空,true;
  • p为空q不为空,或q为空p不为空,false;
  • p->val==q->val,那么就判断它的左右子树;
  • p->val!q->val,false。

判断完成后,逐层向上返回bool结果。

代码实现

1
2
3
4
5
6
7
8
9
10
bool isSameTree(TreeNode *p, TreeNode *q) {
if(p==nullptr && q==nullptr)
return true;
if(p==nullptr || q==nullptr)
return false;
if(p->val==q->val)
return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
else
return false;
}
支付宝打赏 微信打赏 QQ钱包打赏

感觉不错?欢迎给我 打个赏~我将不胜感激!