美文网首页
2018-07-27

2018-07-27

作者: 梁东东 | 来源:发表于2018-07-27 07:37 被阅读0次
class Node(object):

    def __init__(self, left, right, val):
        self.left = left
        self.right = right
        self.val = val

    # 把方法改成静态方法了 发现在做递归的时候,None不是实例,不能调用
    @staticmethod
    def is_same(self, node):
        res = False
        if self is None and node is None:
            res = True
        elif (self is None and node is not None) or (self is not None and node is None):
            res = False
        elif self.val == node.val:
            res = Node.is_same(self.left, node.left) and Node.is_same(self.right, node.right)
        return res


def test_is_same():
    # 手动构建二叉树

    d = Node(None, None, 4)
    e = Node(None, None, 5)
    f = Node(None, None, 6)
    g = Node(None, None, 7)
    c = Node(f, g, 3)
    b = Node(d, e, 2)
    a = Node(b, c, 1)

    assert Node.is_same(a, a) is True
    assert Node.is_same(a, b) is False

相关文章

网友评论

      本文标题:2018-07-27

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