Skip to content

Latest commit

 

History

History
33 lines (22 loc) · 1.69 KB

深度-广度遍历.md

File metadata and controls

33 lines (22 loc) · 1.69 KB

给定一个二叉树,使用 DFS 和 BFS 遍历返回所有节点。

DFS 和 BFS 一般有递归和非递归的实现方式

深度优先遍历(DFS)

DFS

  • DFS 的思想是从上至下,对每一个分支一直往下一层遍历直到这个分支结束,然后返回上一层,对上一层的右子树这个分支继续深搜,直到一整棵树完全遍历,因此符合栈后进先出的特点
  • 深度优先遍历常用的数据结构是
  • DFS 特性 : 不全部保留结点,占用空间少;有回溯操作(即有入栈、出栈操作),运行速度慢。

广度优先遍历(BFS)

[BFS

  • BFS 的思想是从左至右,对树的每一层所有结点依次遍历,当一层的结点遍历完全后,对下一层开始遍历,而下一层结点又恰好是上一层的子结点。因此符合队列先进先出的特点
  • 深度优先遍历常用的数据结构为队列
  • BFS 的特性 : 保留全部结点,占用空间大;无回溯操作(即无入栈、出栈操作),运行速度快。

查看 demo;