题解 | #判断二叉树是否相等#
判断二叉树是否相等
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)
查看5道真题和解析