给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

1.给定两个二叉树,编写一个函数来检验它们是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
在这里插入图片描述
2.代码展示

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */


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);
}

3.解题思路
先判断是否都为空树,如果是就返回ture,在判断是否有一个空树,是就返回false,运行到这里说明,两个树都不为空,我们比较他的val,如果不相等就返回false,相等的话,就遍历它的左右子树,直到不符合条件跳出,或者递归完成。

发布了79 篇原创文章 · 获赞 6 · 访问量 3793

猜你喜欢

转载自blog.csdn.net/qq_41152046/article/details/104802989