LeetCode刷题-100. 相同的树
题目链接:100. 相同的树
¶题解:
简单判断两颗二叉树是否相同!
¶题目简述:
给定两颗二叉树,判断是否相同!
¶题解一:DFS
两树相同,即对应的左子树相同,对应的右子树相同即可!
思路:
- 左子树相同,并且右子树相同即可,即
isSameTree(p->left, q->left) && isSameTree(p->right, q->right)
- 递归出口:
- 两子树都空,返回
true
- 一子树空,一子树不空,或者两子树都不空但值不同,返会
false
- 两子树都空,返回
**时间复杂度:**所有节点遍历一次, 为 O(n)
¶AC代码一:
1 |
|
¶题解二:BFS
使用BFS来遍历一次两树即可!
思路:
- 每次都是将同一方向的两树入队,左左右右,使得需要比较的节点为相邻状态即可!
- 若两树都空,跳过即可,
continue
- 若一树空,一树不空,或者两树都不空但是值不一样,直接返回
false
- 然后按照左左右右顺序入队两棵树
- 循环结束没有返回
false
,则最终返回true
很明显,递归更好写!
时间复杂度:遍历一遍所有节点,为O(n)
¶AC代码二:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小牛博客!
评论