题解 | #判断二叉树是否相等#

判断二叉树是否相等

https://www.nowcoder.com/practice/9a9e74b71f944efab9992925f7f9a65e

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

#
# 
# @param p TreeNode类 
# @param q TreeNode类 
# @return bool布尔型
#
class Solution:
    def isSameTree(self , p , q ):
        # write code here
        #首先判断两个二叉树是否都是空,如果是空,返回True
        if p is None and q is None:
            return True
        #接着判断两个二叉树其中一个是否为空,如果有一个为空则返回False
        elif p is None or q is None:
            return False
        #是否是空二叉树判断完,接下来判断二叉树的值,看是否相等
        elif p.val != q.val:
            return False
        #直接判断值,以及左右子节点的值是否相等,如果相等返回True
        # elif p.val  == q.val and p.left==q.left and p.right == q.right:
        #也可以使用递归的方式判断左右子节点的值是否相等,因为这里的isSameTree()返回的本身就是一个布尔值
        return self.isSameTree(p.left,q.left) and self.isSameTree(p.right,q.right)

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务