题目描述:
- 给定两个二叉树,编写一个函数来检验它们是否相同。
- 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
解题思路:
使用递归依次判断每个相同级别的节点的值是否相同,递归判断下去,得到结果
1.先判断是否均为 null,避免获取空节点 val 报错
2. 再判断是否存在 null,存在 null,说明两者不一样,因为都不会 null
3. 通过前面两个判断,肯定都不为空,此时判断值是否相等
class Solution:
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
if p == None and q == None:
return True
if p == None or q == None:
return False
if p.val != q.val:
return False
return self.isSameTree(p.left,q.left) and self.isSameTree(p.right,q.right)