java - 如何通过只保留所有树的公共节点来合并多个树

  显示原文与译文双语对照的内容

所以我有两到三棵树,我在执行一些代码时。 这里树的每个节点都有这里属性,它的中最少有 0个子级最大为 8个子级。 所以我猜你可以获得这种类型的完整树的图片,它位于第 0级,单个 root 节点。 级别 1 8节点级别 2节点等。 父节点的每个子节点都是从 0到 7编号的,我在java中将它作为字节整型类型存储在java中。

现在我需要将这两个树合并到所生成的树中,并完全忽略给定节点的子级。 如果级别为level树,if树 1,6 和树 2,和树都有 5,6,tree树的common是所有三个树的共有值 在树0的节点中,节点0 5th 是否有 4个子节点,而在树 1中的5th 个节点是否具有个子。 在某一级别标记为 5节点,如果节点的数量与其子节点相同或者子节点不相同,则假设该节点与标记为 5的节点相同。

所以在第二段视觉上说明我所提到的,以确保没有任何模糊性,也包括这三个图。 前两个合并为第三个树。 enter image description here

请我在世界上有所时间,这是个个人目的,我在这里学习什么,请不要建议任何库。

这个解决方案只考虑每个树的单个队列,并对这三棵树执行一个级别顺序遍历,并添加我遇到的对队列的。 在开始添加给定节点的子节点之前,我会看到这三个队列是什么 ! 我在结果树中设置了公共零件节点。 但是我想知道是否有一个比这个更有效的解决方案。

时间: 作者:

假设在两种情况下,树和子节点都是相同的顺序,则可以使用简单的递归算法将树合并在一起:

  • 将一个空树合并到一起,任何树都会产生空树。
  • 用不同根合并树会产生空树。
  • 将两个树合并为同一 root R 和子节点 1n 还有 1n 通过生成一个具有 root R的新树来完成,该树的子树是合并 i /D j 对的对 i 还有 i 具有相同 root 值的。

希望有帮助!

作者:
...