我无法看到我的错误。我使用了一个列表,其中insert方法按顺序添加每个新元素。我试图不在这种情况下使用哈希表。 我写了一个控制流图,把它写在纸上,它似乎在那些媒介中有意义,但我无法得到我正在寻找的结果。 我的清单:0,1,1,1,2,4,5,7 我通过这种方法运行后完全相同:
public class List {
int value;
List next;
List(int value, List next) {
this.value = value;
this.next = next;
}
}
public void deleteDuplicates() {
List marker = head;
List pointer = marker;
while(marker != null && marker.next != null){
while(pointer.next != null){
if(marker.value == pointer.next.value){
pointer.next = pointer.next.next;
}
else{
pointer = pointer.next;
}
}
marker = marker.next;
}
}
答案 0 :(得分:0)
在内循环结束后你没有重置pointer
变量:在marker = marker.next;
后你应该添加pointer = marker;
同样Node
似乎是一个更好的名称,而不是List
。