美文网首页
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