暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

相同的树

三木小小推 2019-08-26
181


微信公众号:三木小小推[1]
系列:刷题之Python
如果你觉得该系列对你有帮助,欢迎点好看[2]

问题描述

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

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

示例 1:

输入:       1            1
           \          \
           2   3        2   3

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

输出: true
示例 2:

输入:      1       1
                          \
            2                2

 [1,2],  [1,null,2]

输出: false
示例 3:

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

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

输出: false

解决方案

 def isSameTree(self, p, q):
    if p and q:
        return p.val == q.val and self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
    return p is q


def isSameTree(self, p, q):
    def t(n):
        return n and (n.val, t(n.left), t(n.right))
    return t(p) == t(q)


def isSameTree(self, p, q):
    return p and q and p.val == q.val and all(map(self.isSameTree, (p.left, p.right), (q.left, q.right))) or p is q

欢迎订阅

下面是三木小小推的二维码,欢迎订阅呦~~

你点的每个好看,我都认真当成了喜欢


文章转载自三木小小推,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论