leetcode -100-相同的树-javascript实现

1.题目描述:

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

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

eg:

输入:       1         1
          / \       / \
         2   3     2   3

        [1,2,3],   [1,2,3]

输出: true

2.解题思路:

(1)这个代码采用的是递归调用的思想,左右子树分别判断,如果左子树和右子树都判断到null,就是到最后了,那就返回true;

如果是别的情况的话,则返回false

(2)返回false的情况有以下几点:

--》其中有一个结点为空,但并不是两个结点同时为空,这种情况下返回false;

--》如果两个结点的值不相等的话,则要返回false;

(3)最后递归调用isSameTree(p.left,q.left) && isSameTree(p.right,q.right);

3.上代码:

var isSameTree = function(p, q) {
    if(p===null && q ===null)
    {
        return true;
    }else if(p===null || q===null)
    {
        return false;
    }else if(p.val!=q.val)
    {
        return false;
    }
    //相等
    return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
};

猜你喜欢

转载自blog.csdn.net/qq_42099097/article/details/107476681