0100. 相同的树
小于 1 分钟
0100. 相同的树
- 标签:树、深度优先搜索、广度优先搜索、二叉树
- 难度:简单
题目链接
题目大意
描述:给定两个二叉树的根节点 和 。
要求:判断这两棵树是否相同。
说明:
- 两棵树相同的定义:结构上相同;节点具有相同的值。
- 两棵树上的节点数目都在范围 内。
- 。
示例:
- 示例 1:
输入:p = [1,2,3], q = [1,2,3]
输出:True
- 示例 2:
输入:p = [1,2], q = [1,null,2]
输出:False
解题思路
思路 1:递归
- 先判断两棵树的根节点是否相同。
- 然后再递归地判断左右子树是否相同。
思路 1:代码
class Solution:
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
if not p and not q:
return True
if not p or not q:
return False
if p.val != q.val:
return False
return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
思路 1:复杂度分析
- 时间复杂度:,其中 、 分别为两棵树中的节点数量。
- 空间复杂度:。