聊聊算法——BFS和DFS

 

如果面试字节跳动和腾讯,上来就是先撕算法,阿里就是会突然给你电话,而且不太在意是周末还是深夜,

别问我怎么知道的,想确认的可以亲自去试试。说到算法,直接力扣hard三百题也是可以的,但似乎会比较伤脑,

有没一些深入浅出系列呢,看了些经典的算法,发现其实很多算法是有框架的,今天就先说下很具代表的树

算法BFS和DFS,再来点秒杀题。

 

作者原创文章,谢绝一切转载,违者必究。

准备:

Idea2019.03/JDK11.0.4

难度: 新手--战士--老兵--大师

目标:

理解BFS和DFS框架

框架应用扩展

1 介绍

BFS和DFS,即“广度优先”和“深度优先”,如下图二叉树前序BFS为 1-2-3-4-5 ,DFS为 1-2-4-5-3,本文中算法均以此树为例:

2 算法理解 2.1 DFS递归模式

如下,这寥寥几行,即完成了二叉树先序、中序和后序遍历算法,这就是算法框架

public static void dfs(Node root){ if (root == null){ return; } // 先序遍历位置 dfs(root.left); // 中序遍历位置 dfs(root.right); // 后序遍历位置 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpdgs.html