【问题标题】:Algorithm to traverse a binary tree level by level starting from root从根开始逐级遍历二叉树的算法
【发布时间】:2013-04-23 23:23:07
【问题描述】:

谁能建议一种算法从根开始逐级遍历二叉树?

【问题讨论】:

    标签: algorithm data-structures tree binary-tree


    【解决方案1】:

    这是通过 breadth-first 搜索你的树来完成的:

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

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

    【讨论】:

    • 只是想我要补充一点,这显然可以推广到 k-ary 有序树以及一般的无序树。
    【解决方案2】:

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

    这本质上是一个Breadth First Traversal

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      • 2014-05-27
      • 1970-01-01
      • 2012-01-01
      • 2022-11-11
      • 2021-03-10
      相关资源
      最近更新 更多