【问题标题】:How to print all nodes of a tree?如何打印树的所有节点?
【发布时间】:2019-05-24 21:21:58
【问题描述】:

因此,我不会为我的问题提供代码,因为我对理论解决方案更感兴趣。

我有一棵二叉树,想要打印所有节点的所有 ID,顺序是相同高度的节点打印在一起:首先打印高度 0 的节点,然后打印高度 1 的 2 个节点打印,比打印高度 2 上的 4 个节点,依此类推。我的树的父亲和儿子通过指针连接,相同高度的节点不连接。并非所有父亲都有 2 个儿子(有些可能只有 1 个儿子)。

理论上,我可以通过哪些方式打印这棵树?是通过递归吗?

【问题讨论】:

  • 这个问题对于这个网站来说太宽泛了,不能用几句话来回答。尤其是当您需要考虑不同数量的儿童和可能非常宽的树木时。
  • 我可以通过多种方式完成,每种方式都有优缺点,我建议用您当前结构的一些更有价值的细节以及您想要考虑实现结果的一些更有价值的细节来补充这个问题.
  • 您是否尝试过应用 BFS 遍历算法? - 它使用队列数据结构。 - 它将逐级遍历树。我建议你在公共论坛上提问之前做一些研究。

标签: java recursion binary-tree


【解决方案1】:

您需要进行水平顺序遍历。你的问题正是here

【讨论】:

    【解决方案2】:

    您正在寻找的可能是广度优先搜索。实现这一点的一种简单方法是创建一个全局队列,并在遍历树时向其中添加节点以进行搜索。如果它是一棵有限树,则在搜索完队列中的所有节点后就完成了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-15
      • 2012-04-15
      相关资源
      最近更新 更多