更多题目移步【力扣简单题】
题目
难度:★☆☆☆☆
类型:二叉树
给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
示例
示例 1:
输入: [1,2,3], [1,2,3]
1 1
/ \ / \
2 3 2 3
输出: true
示例 2:
输入: [1,2], [1,null,2]
1 1
/ \
2 2
输出: false
示例 3:
输入: [1,2,1], [1,1,2]
1 1
/ \ / \
2 1 1 2
输出: false
解答
判定两棵二叉树是否相等,需要进行如下判断:
两棵二叉树均为空,则相等;
两棵二叉树其中一棵为空,另一棵不为空,则不相等;
两棵二叉树均不为空,如果根节点的值相等,左子树相等和右子树相等,则这两棵二叉树相等,否则不相等。
代码实现如下:
class Solution:
def isSameTree(self, p, q):
def same_tree(p, q):
if not p and not q: # 两棵树均为空
return True
elif not p and q or not q and p: # 两棵树只有一棵为空
return False
else:
return p.val == q.val and same_tree(p.left, q.left) and same_tree(p.right, q.right)
return same_tree(p, q)
如有疑问或建议,欢迎评论区留言~