type
status
date
slug
summary
tags
category
icon
password
感觉在BFS与DFS上下的功夫不是很多,于是先做个简单的搜索题,找个感觉。
📝 题目
给你两棵二叉树的根节点
p
和 q
,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
示例 1:
输入:p = [1,2,3], q = [1,2,3] 输出:true
示例 2:
输入:p = [1,2], q = [1,null,2] 输出:false
示例 3:
输入:p = [1,2,1], q = [1,1,2] 输出:false
提示:
- 两棵树上的节点数目都在范围
[0, 100]
内
10
4
<= Node.val <= 10
4
🤗 解法
使用BFS或者DFS搜索这两棵树,有下列两种情况返回false:
- 如果这两个节点一个为空一个不为空则false
- 如果这两个节点都不为空,且两个节点的val值不相同,则false
DFS
BFS
BFS要比DFS要麻烦一点,需要建立两个队列,这两个队列负责分配搜索的顺序,在队头的先搜索,当搜索左右节点的时候,将这两个左右节点放入队尾,待定搜索,这样便实现广度优先搜索(BFS)
📎 参考文章
- LeetCode Wiki
有什么问题请留言,具体DFS与BFS思想会在之后的文章中呈现
- Author:灵檠
- URL:https://blog.ly-qing.lol/article/f0e3a3ab-2bfd-4f1f-b7b2-24f8fe8b0e8b
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts