专栏名称: 每日一道算法题
学习算法是一种信仰,每天都需要坚持!
目录
相关文章推荐
算法爱好者  ·  震撼!美国卡脖子下,中国工程师拖 4 ... ·  昨天  
算法与数据结构  ·  Cursor 1.0 ... ·  3 天前  
九章算法  ·  「九点热评」谷歌正式冻结招聘! ·  2 天前  
九章算法  ·  强制给九成人打“低绩效”!TikTok员工自 ... ·  2 天前  
51好读  ›  专栏  ›  每日一道算法题

[每日一题]树的层次遍历的几种方法

每日一道算法题  · 公众号  · 算法  · 2017-04-16 21:41

正文

请到「今天看啥」查看全文


while queue.length != 0

item = queue.shift  #弹出队列的头部元素

do_something(item)  # 操作该节点:比如存入一个数组或者打印

queue.push(item.left) if item.left  # 将左子节点存入队列

queue.push(item.right) if item.right  # 将右子节点存入队列

但是只掌握了上面的遍历方法是不够的,层次遍历的难点在于同层次的比较。也就是说, 我们需要对不同层次的节点做隔离 。下面我们总结了三种不同层次的节点隔离的技巧。

正文


遍历技巧一:数组长度做隔离

思路

获取当前的队列的长度 length, 一次只遍历只遍历 length 个节点,后续加入的元素在下一次循环遍历。







请到「今天看啥」查看全文