Leetcode 100 相同的树

2020-06-28  本文已影响0人  SunnyQjm

相同的树

题目

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

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

解答

测试验证

class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None


class Solution:
    def isSameTree(self, p, q):
        """
        :type p: TreeNode
        :type q: TreeNode
        :rtype bool

        (knowledge)
        
        思路:
        1. 判断当前两个根节点的值是否相等,不相等则返回false
        2. 递归判断对应的左子树和右子树是否相等
        """
        if not p or not q:
            if not q and not p:
                return True
            else: 
                return False

        if p.val != q.val:
            return False

        return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)


if __name__ == '__main__':
    solution = Solution()
    p = TreeNode(1)
    p.left = TreeNode(2)
    p.right = TreeNode(3)
    q = TreeNode(1)
    q.left = TreeNode(2)
    q.right = TreeNode(3)
    print(solution.isSameTree(p, q), "= True")

    p = TreeNode(1)
    p.left = TreeNode(2)

    q = TreeNode(1)
    q.right = TreeNode(2)
    print(solution.isSameTree(p, q), "= False")
上一篇 下一篇

猜你喜欢

热点阅读