LeetCode刻意练习19--相同的树

在这里插入图片描述
题目:
给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

思路:
递归太香了,就算它没有记忆性,重复处理相同的子问题,并且可能会造成堆栈的溢出,但是身为菜鸡我真的太爱了。

基本情况:

1.两个引用都指向空,那么结果是相等的;
2.两个引用一空一不空,那么是不会相等的;
3.两个引用都不为空:
但是所指的结点的 val不同,那么这两棵树也是不会相同的;
如果所指的结点的 val相同,那么我们继续看对比两棵树的左右子树。

    public boolean isSameTree(TreeNode p, TreeNode q) {
    //第一种情况
        if (p == null && q == null)
            return true;
            //第三种情况
        if (p != null && q != null && p.val == q.val)
            return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
            //第二种情况就是 其他状况。
        return false;
    }
发布了49 篇原创文章 · 获赞 2 · 访问量 875

猜你喜欢

转载自blog.csdn.net/qq_43720551/article/details/104965755
今日推荐