思路:
1、【双队列】【迭代(循环)】1号队列存储一层,2号队列存储下一层 ,1号出队至一个vector,等1号空了,2号也装入完毕,此时将2号复制到1号,2号自己清空,如此循环。 时间、空间复杂度O(n)
2、【记录每层结点个数】【迭代】记录每层结点数,每次出队的个数为每层的结点数,这些结点进入一个vector;下一层的一组结点进入下一个vector。
3、【记录结点的分层】【迭代】层数改变(遇到分界结点),则装入下一个vector。不知道有什么问题,执行出错
以上都是用的BFS广度优先遍历(使用队列),还可以:
4、【推荐】【使用DFS深度优先遍历,记录每个节点的层数】【递归】递归时记录每个节点的层数level,同时创建新vector或加入已有的vector。(因为vector下标从0开始,所以结点的层数也从0开始,方便些)
1、【双队列】【迭代(循环)】1号队列存储一层,2号队列存储下一层 ,1号出