【发布时间】:2018-08-23 10:32:10
【问题描述】:
请分享你的想法和解决复制完整非二叉树这个问题的任何解决方案,它可能还包括一些子节点连接到其他父节点的循环。
示例:
这里,“A”是根或父级,它的子级和往常一样是“B”和“C”,最后,子级“G”连接回其祖父级“B”,类似地“I”连接到它的直接父“C”,所以这些就像一个循环,这也需要按原样复制到新树中。所以,这里我们需要附加逻辑来识别循环,同时复制子节点,并且不陷入无限循环,并最终返回整个树的副本。
A
- B
- D
- E
- F
- G --> B
- C
- I --> C
- K
这个类或节点结构可以是这样的:
public class Node{
private String value;
private List<Node> childrens;
public Node copyTree(Node root) {
...
//return
}
}
感谢我们的帮助。
【问题讨论】:
-
如果有一个循环,我不再相信它是一棵树,它是一个图。看来您想克隆图表。您可以查看here 以了解如何克隆图形。
-
有循环的树是矛盾的。
标签: algorithm data-structures graph tree binary-tree