算法编程题-判断二叉树是否相等

题目:

给出两个二叉树,请写出一个判断两个二叉树是否相等的函数。

判断两个二叉树相等的条件是:两个二叉树的结构相同,并且相同的节点上具有相同的值。

数据范围:树上的节点数满足 0≤n≤2000≤n≤200 , 树上节点的值满足 0≤val≤50000≤val≤5000

进阶: 空间复杂度 O(1), 时间复杂度 O(n)

分析:
1.判断两个树是不是都是null,如果都是,则返回true
2.两个树仅有一个是null的,是不相等的,则返回false
3.判断两个树根节点是不是相等,如果不相等,那两棵树就不相等,则返回false
4.递归查询左右节点是否相等

核心代码实现


import java.util.*;

/*

* public class TreeNode {

*  int val = 0;

*  TreeNode left = null;

*  TreeNode right = null;

* }

*/

public class Solution {

    /**

    *

    * @param p TreeNode类

    * @param q TreeNode类

    * @return bool布尔型

    */

    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 false;

        }



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

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容