class TreeNode:
def __init__(self, val = 0, left = None, right = None):
self.val = val
self.left = left
self.right = right
class Solution:
def isSameTree(self, p:TreeNode, q:TreeNode):
if p == None and q == None:
return True
if (p == None and q!=None) or (p != None and q == None):
return False
if p.val != q.val:
return False
else:
return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
a = Solution()
node1 = TreeNode(1)
node1.left = TreeNode(2)
node2 = TreeNode(1)
node2.left = TreeNode(2)
b = a.isSameTree(node1,node2)
print(b)
主要问题:
(1)找好出口条件,左树与右树都为空的时候返回false,一个为空一个不为空的时候返回false.
(2)同时递归比较左树与右树是否相等