题目描述:
给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
递归代码:
# 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
"""
# p,q都为空时,返回True
if not p and not q:
return True
# p,q中只有一个为空时,返回False
elif not p or not q:
return False
# p,q值不相等是返回False
elif p.val != q.val:
return False
# p,q的值相等时,递归,比较左分支和右分支
else:
return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)