Java 连接结构
我目前正在研究Java中的链接结构。我正在使用一个类来创建节点。特别是一个方法,它将连接两个节点并返回表示此联合的第三个节点。Node1={1,2,3};Node2={4,5,6}concat(Node1,Node2)={1,2,3,4,5,6}) 代码如下。作为练习的一部分,三个节点应相互独立。我的解决方案是使用copy()方法复制节点。我想知道是否有更简单的方法来做这件事。 多谢各位Java 连接结构,java,linked-list,Java,Linked List,我目前正在研究Java中的链接结构。我正在使用一个类来创建节点。特别是一个方法,它将连接两个节点并返回表示此联合的第三个节点。Node1={1,2,3};Node2={4,5,6}concat(Node1,Node2)={1,2,3,4,5,6}) 代码如下。作为练习的一部分,三个节点应相互独立。我的解决方案是使用copy()方法复制节点。我想知道是否有更简单的方法来做这件事。 多谢各位 public class Node { int data; Node next; Node(int da
public class Node {
int data;
Node next;
Node(int data){
this.data = data;
}
Node concat(Node list1, Node list2) {
// The copy method basically creates a copy of the given Node.
Node an = copy(list1); Node b = copy(list2);
Node a = an;
while(a != null) {
if(a.next == null) {break;}
a = a.next;
}
a.next = b;
return an;
}
Node copy(Node p) {
Node nan = new Node(p.data);
Node n = nan;
p = p.next;
while(p != null) {
n.next = new Node(p.data);
n = n.next;
p = p.next;
}
return nan;
}
}
如果希望所有链中的所有节点都是独立的,则必须复制它们 无论如何,这里有一个稍微简化的代码版本:
Node concat(Node list1, Node list2) {
Node clone = copy(list1);
Node iter = clone;
while (iter.next != null) {
iter = iter.next;
}
iter.next = copy(list2);
return clone;
}
Node copy(Node other) {
Node clone = new Node(other.data);
Node iter = clone;
while (other.next != null) {
other = other.next;
iter.next = new Node(other.data);
iter = iter.next;
}
return clone;
}
定义“最优”。我建议你试着在书堆上问一下。谢谢!不知道有代码审查。不过,我想知道的不是最优与否的问题,而是是否有更好的方法可以独立创建第三个节点,而不必复制其他两个节点。问题是“更好”是观点。至少最佳的可能是“时间”或“空间”。我想知道的是,复制节点是否是保持节点相互独立的必要条件。谢谢,伙计,我忘了添加。下一步是循环条件!