删除链接列表中的重复项

时间:2016-12-02 23:15:46

标签: java list duplicates

我无法看到我的错误。我使用了一个列表,其中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;
    }
}

1 个答案:

答案 0 :(得分:0)

在内循环结束后你没有重置pointer变量:在marker = marker.next;后你应该添加pointer = marker;

同样Node似乎是一个更好的名称,而不是List