广度优先搜索(BFS)是按层的概念进行的搜索算法,利用Quene记录需要被展开的TreeNode。
广度优先搜索解题模板:
(1)初始化队列(通常加入根结点)
(2)当队列非空时:
pop出队列中的所有值(当前层,需记录size);
并分别对pop出的每个值的左孩子和右孩子添加进队列(这里先添加左孩子还是右孩子是根据题目来的);
增加层数;
将相应的元素添加进最终结果中;
注意:一定是先将当前层的所有结点元素pop出去(因此需要size记录当前层的元素数量),而不是不断地pop元素出去,因为可以知道,在pop出每个元素之后,会有两个孩子结点加入,因此为了分层,一定是要先记录每层的size,再进行pop。
具体问题分析看广度优先搜索实例分析。
广度优先搜索解题技巧
最新推荐文章于 2023-07-30 20:48:40 发布