****lc102.二叉树层序遍历(分别得到每一层)(4个思路!)【推荐:使用DFS深度优先遍历,记录每个节点的层数】

本文详细介绍了二叉树层序遍历的四种不同实现方式,包括双队列迭代、记录每层节点数迭代、记录节点分层迭代以及推荐的DFS深度优先遍历,并分析了其时间、空间复杂度。
摘要由CSDN通过智能技术生成

思路:

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号出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值