昨天刚刚第一次刷题用到了dfs,今天bfs就来了。。

dfs是按深度进行搜索的,而bfs是按宽度,也就是搜完这一次再去搜下一层,这个特性就特别适合层次遍历。先声明一个队列,由于golang中没有队列,我们可以自己声明一个queue为[]*TreeNode,然后先将根节点放进该队列中,然后就可以进行bfs了,首先先声明一个变量为队列此时的大小,这个数就代表队列在这一层有多少个数,然后循环依次把这个数添加进一个数组中,这个过程中每取出一个数就是取出一个节点,还要判断该节点是否有左右子节点,有的话放入队列中,由于队列是先进先出的,所以可以保证这个阶段进来的节点再下一次bfs中进行运算。代码如下:

102.二叉树的层次遍历

相关文章: