美文网首页
leetCode 100题和101题--相同的树和对称的树(sw

leetCode 100题和101题--相同的树和对称的树(sw

作者: 追忆之丘 | 来源:发表于2019-07-21 16:22 被阅读0次

    题目链接100题

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

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

    例如

    示例1 示例2

    根据题目要求,我们首先想到的树采用递归的方法来解决问题

    代码如下

    func isSameTree(_p:TreeNode?,_q:TreeNode?) ->Bool{

        if q == nil && p == nil{

            return true

        }

        if q == nil || p == nil{

            return false

        }

        if p!.val != q!.val{

            return false

        }

        if isSameTree(p?.left, q?.left) && isSameTree(p?.right, q?.right){

            return true

        }

        return false

    }

        这个写法提交之后显示是8ms,显示比97%的人要好。

    题目链接101题力扣

        然后我们来看看100题的拓展101题,题目的要求是给定一个二叉树,检查它是否是镜像对称的,这就是100题的拓展,为什么这么说呢?因为,我们把这棵树遍历两遍即可,即相当于把它当作两棵树同时遍历,比较其值是否相等,首先把这棵树先序遍历,然后把这棵树以根节点为起点,右子树为第二步开始先序遍历来比较两次的结果,若结果我完全一致,则镜像对称,否则不是镜像对称

    代码如下

    看起来就像直接调用了100题一样,其实就只改动了一点点而已。

    相关文章

      网友评论

          本文标题:leetCode 100题和101题--相同的树和对称的树(sw

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