我有一个图形类,其中包含节点,每个节点可以连接到其他节点:
public class Node {
List<Node> connections;
}
我想要制作整个图的深层拷贝。首先,我尝试创建一个类似于以下的拷贝构造函数:
public Node(Node other) {
connections = new ArrayList<Node>();
for (Node n : other.connections) {
connections.add(new Node(n));
}
}
深度复制一个图形只需要这样做:
public Graph deepCopy () {
Graph g = new Graph();
g.nodes = new ArrayList<Node>();
for (Node n : nodes) {
g.nodes.add(new Node(n));
}
}
但是这样做会破坏节点之间的连接关系。我想知道是否有简单的方法可以解决这个问题?谢谢。