美文网首页
2018-03-09 判断两颗二叉树是否完全相等

2018-03-09 判断两颗二叉树是否完全相等

作者: 半瓶酱油 | 来源:发表于2018-03-09 11:28 被阅读0次

思路大概是分别找出节点相同和不相同的条件,再根据这些条件确定返回结果还是递归。


起初我列出的条件太过复杂,既要判断当前两个节点的情况又要判断其左右节点的情况,代码写了一大堆可是仍然有考虑不周全的情况。后来仔细想了想,尽量将复杂的判断条件简单化,即:每次递归只判断当前两个节点的情况,子节点的情况留给下一次递归去做。于是给出以下判断条件:

(先根据空节点情况判断)

1.两个节点同时为空,返回true(到底了不需要继续递归)

2.两个节点不同时为空(一个为空一个不为空),一定不相同,返回false

(前两个条件排除了节点为空的可能性,接下来判断节点的值是否相等)

3.节点的值相等,则递归判断左右节点

4.两个节点的值不想等,返回false。


代码如下:

        public boolean isSameTree(TreeNode p, TreeNode q) {

          if (p==null && q==null) return true;

          if (p==null || q==null) return false;

          if (p.val == q.val) {

              return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);

          }

          return false;

        }

相关文章

  • 100.same tree

    判断两颗二叉树是否相等,对应节点的val相等。 代码:

  • 2018-03-09 判断两颗二叉树是否完全相等

    思路大概是分别找出节点相同和不相同的条件,再根据这些条件确定返回结果还是递归。 起初我列出的条件太过复杂,既要判断...

  • 二叉树-判断是否相等

    //判断二叉树是否相等的函数

  • kotlin学习笔记

    $ ?表示对象可能为空 ?: !! ==,=== ==判断值是否相等,===判断值及引用是否完全相等。 ..Kot...

  • Java 中==与===的区别?

    =是赋值运算,而==判断值是否相等,===是判断的是值及类型是否完全相等 首先,== equality 等同,==...

  • 判断两个二叉树是否相等

    给出两个二叉树,请写出一个判断两个二叉树是否相等的函数。 判断两个二叉树相等的条件是:两个二叉树的结构相同,并且相...

  • 10.27打卡

    Q: 下面会输出什么? ”==”与”===”一个是判断值是否相等,一个是判断值及类型是否完全相等。 Q: 考虑下面...

  • Python/Numpy判断数组是否相等

    Numpy判断数组是否相等一般是判断两个数组是否完全相等 (array1 == array2) 返回两个矩阵中对应...

  • LeetCode 力扣 101. 对称二叉树

    题目描述(简单难度) 判断一个二叉树是否关于中心轴对称。 解法一 和 100 题 判断两个二叉树是否相等其实是一样...

  • 100. 相同的树

    题目 思路 题目不难,判断两个二叉树是否相等,只需要判断三个条件: 两个根结点的val相等两个左结点相等两个右结点...

网友评论

      本文标题:2018-03-09 判断两颗二叉树是否完全相等

      本文链接:https://www.haomeiwen.com/subject/obdpfftx.html