Leetcode102| BFS二叉树的层序遍历

按要求层序遍历二叉树

  • 层序遍历BFS一般都是需要用队列来辅助实现,不同于深度优先DFS,BFS一般是不用递归的。递归会导致越来越深入,不符合(广度优先Breadth-First-Search)

  • 这种打印要求区分每一层而不是简单的全部打出来,所以要作出每层的区分,这一点怎么做到呢?首先我们先入队的是头节点,队列长度为1,队列不为空进入while循环,new出这一层的数组,长度是目前队列的长度,目前队列依次出队,把值加入数组,把出队的节点的左右节点都加入队列,此时我们加入了3这个头节点的左右节点9和20到队列里,把3这个头节点的值加入数组了,

  • 疑问数组初始化的时候可以不指明长度吗?

  • 然后我们又因为队列不为空进入while循环,new出第二层的数组,长度是当前队列长度2,for循环循环两次,队列元素9节点出队,把值存到数组把孩子加入队列,队列元素20节点出队,把值存到数组把孩子加入队列,此时第二层数组装配完毕,队列里装着20的两个子节点

  • 我们又因为队列不为

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值