从根开始逐层遍历二叉树的算法

时间:2013-04-23 23:23:07

标签: algorithm data-structures tree binary-tree

任何人都可以建议一种算法来从根开始逐层遍历二叉树吗?

2 个答案:

答案 0 :(得分:5)

这是由breadth-first搜索你的树完成的:

  • 创建树节点队列
  • 将树根排入队列
  • 队列不为空时,请重复以下操作:
  • 将某个节点出列并打印其内容
  • 将当前节点的左子节点排队
  • 将当前节点的右子节点排队

当您遵循此算法时,将从级别K打印第一个节点之前打印级别K+1中的所有节点,因此将逐级打印树。

答案 1 :(得分:1)

您可以使用队列执行此类遍历。从根节点将其子节点推送到队列的末尾,然后在队列不为空时从队列顶部弹出一个项目并将其子节点添加到队列的末尾。在适当的时候处理每个节点。

这基本上是Breadth First Traversal