100. 相同的树
1. 题目
给你两棵二叉树的根节点 p
和 q
,编写一个函数来检验这两棵树是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
示例 1:
1 | 输入:p = [1,2,3], q = [1,2,3] |
示例 2:
1 | 输入:p = [1,2], q = [1,null,2] |
示例 3:
1 | 输入:p = [1,2,1], q = [1,1,2] |
提示:
- 两棵树上的节点数目都在范围
[0, 100]
内 -10^4 <= Node.val <= 10^4
2. 思路
- 已知题目要求判断两个二叉树是否完全相同
- 当传入
p
树或q
树中有1个为null
时,则返回p == q
,如果两个都为null
,返回值会为true
,否则返回false
- 如果两个传入参数均有值,则判断其
val
值是否相同,同时一并递归判断其left
节点与right
节点是否一致
3. 代码
1 | /** |
4. 复杂度
- 时间复杂度:O(n)
- 空间复杂度:O(1)