type
status
date
slug
summary
tags
category
icon
password
😀
感觉在BFS与DFS上下的功夫不是很多,于是先做个简单的搜索题,找个感觉。
 

📝 题目

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
示例 1:
notion image
输入:p = [1,2,3], q = [1,2,3] 输出:true
示例 2:
notion image
输入:p = [1,2], q = [1,null,2] 输出:false
示例 3:
notion image
输入:p = [1,2,1], q = [1,1,2] 输出:false

提示:

  • 两棵树上的节点数目都在范围 [0, 100] 内
  • 104 <= Node.val <= 104

🤗 解法

使用BFS或者DFS搜索这两棵树,有下列两种情况返回false:
  • 如果这两个节点一个为空一个不为空则false
  • 如果这两个节点都不为空,且两个节点的val值不相同,则false

DFS

BFS

BFS要比DFS要麻烦一点,需要建立两个队列,这两个队列负责分配搜索的顺序,在队头的先搜索,当搜索左右节点的时候,将这两个左右节点放入队尾,待定搜索,这样便实现广度优先搜索(BFS)
 

📎 参考文章

  • LeetCode Wiki
 
💡
有什么问题请留言,具体DFS与BFS思想会在之后的文章中呈现
1123. 最深叶节点的最近公共祖先1027. 最长等差数列
  • Utterance
灵檠
灵檠
一个普通的干饭人🍚
Announcement
🎉欢迎访问灵檠的博客!🎉
-- 感谢您的支持 ---
👏欢迎体验👏