方法1:
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def isSameTree(self, p, q):
"""
:type p: TreeNode
:type q: TreeNode
:rtype: bool
"""
if p and q and p.val == q.val:
return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
return p == q
#return p is q 也可以
方法2:
def isSameTree(self, p, q):
def t(n):
return n and (n.val, t(n.left), t(n.right))
return t(p) == t(q)
0,参考后的代码
1,题目的要求是判断两棵树是否是完全一样的。
2,两种方法都是递归的办法,其中方法1里,p is q就是判断p和q是否是一样的元素,也即null 和 null也能进行比较,用到的语法是is。
方法2里,最后生成的完全是两个元组,然后对两个元组进行比较。需要注意的是,当n为null时,n and (n.val, t(n.left), t(n.right))为null;n不为null时,n and (n.val, t(n.left), t(n.right)) 为 (n.val, t(n.left), t(n.right))