我很难找到家庭作业的解决方案。我的教授给了我一堆测试链表,并希望我复制链表中存在的每个节点。
示例:
int[] array = {1, 2, 3, 4, 10};
LinkedIntList list = new LinkedIntList(array);
list.stutter();
打印出新列表时的结果应该是:{1, 1, 2, 2, 3, 3, 4, 4, 10, 10}
这是我到目前为止所拥有的......(我想不出合理的 while 循环)
public void stutter(){
if (front == null) {
return;
}
ListNode current = front;
while (current.next != null) {
if (current != null) {
ListNode duplicate = new ListNode(current.data, current.next);
current.next = duplicate;
}
current = current.next;
}
}
我也有很多构造函数,但由于我在我的方法中调用了一个构造函数,因此这里是相关的构造函数:
public ListNode(int data, ListNode next){
this.data = data;
this.next = next;
}
感谢任何帮助!!!
最佳答案
您只需确保指向重复项的 next
而不是 current.next
:
public void stutter() {
for (ListNode current = front; current != null; ) {
ListNode duplicate = new ListNode(current.data, current.next);
current.next = duplicate;
current = duplicate.next
}
}
关于java - 如何在当前链表中复制我的节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58423813/