我今天去采访了这个问题。我无法想出答案。
演出是 SList2 = SList1.clone();如果你改变SList1中的东西(例如编辑对象),它不会影响SList2中的类似对象。我尝试它,我创建新的节点,但每当我到达克隆对象部分我失败了。正在考虑object.clone(),但问题是没有允许内置函数。
答案 0 :(得分:1)
Slist2.head = new Node();
Node newList = Slist2.head;
Node head = Slist1.head;
Slist.head.(all data) = head.(all data);
while(head.hasNext()){
head = head.next();
Node newGuy = newNode();
newNode.(all data) = node.(all data)
newList.next = newGuy;
}
这将遵循旧列表,手动将所有数据复制到新节点并将该节点添加到新列表
答案 1 :(得分:0)
这是伪装成一个问题的两个问题。
不要深入研究代码,让我们从高层看这个问题。如果你的链表可以提供迭代(也就是说,它有一个类似Iterator
的对象,它在列表中保持其状态,并在引用next()
时返回一个节点),那么第一个问题就变成了通过迭代器迭代链表。
从那里开始,您可能想要从迭代的内容中剥离原始值,并将添加到新的链接列表对象中。
那时你已经完成了很多事情;没有什么花哨的东西需要解决。它实际上是从一个结构中获取数据并将其插入另一个结构中。