100-相同的树

给定两个二叉树,编写一个函数来检验它们是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。


示例

示例 1:

输入:       1         1
/ \ / \
2 3 2 3

[1,2,3], [1,2,3]

输出: true

示例 2:

输入:      1          1
/ \
2 2

[1,2], [1,null,2]

输出: false

示例 3:

输入:       1         1
/ \ / \
2 1 1 2

[1,2,1], [1,1,2]

输出: false

解法

核心思想:两棵树同步递归遍历相比较即可。

class Solution:
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
# 两个空结点
if not p and not q:
return True
# 结点均非空且值相等
if p and q and p.val == q.val:
return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
return False

相关信息

LeetCode:Discussion | Solution

-------------本文结束感谢您的阅读-------------