我的第一道BFS题,还是按照习惯在网上搜索题解,令人郁闷的是大部分都是C++版的,用了queue库。而且可能因为这道题太水,好不容易找到的C语言版的解题报告中的注释又对新手不太友好,不是特别详细,有的讲的很齐全但是代码太难看了我拒绝看 = =。。。知道我遇到了这个人的博客,当然注释也不是很齐全,但是胜在代码啰嗦(划掉),马上就看懂了。所以我决定在他的解题报告代码的帮助下来开始我人生中第一道BFS题(这意味着我的代码也是啰嗦的),很感谢原博主的题解。
http://blog.youkuaiyun.com/u013445530/article/details/19911789
下面分析一下这道题,算是自学吧。蒟蒻没有办法一瞬间就融会贯通T0T
首先遇到这样一道题,应该做什么呢?先画一个解答树好了。。
DFS所搜索的答案一定出现在叶结点上,而这道题中我们不知道这个解答树会有多深,所以不能用DFS一条一条进行搜索,或者说这样做是非常低效的。所以这道题使用了BFS,就是层次遍历,按照逐层加深的顺序遍历这课解答树,得到答案所在的树的深度。
在DFS时,是递归向下的,所以我们不需要额外存储结点&