【发布时间】:2017-02-18 06:51:47
【问题描述】:
这是作业
我被要求从 LinkedList 中删除第 k 个元素。我还得到了它的大小int N。问题是如何在删除位置“k”的节点后更新列表的大小?如果我的代码逻辑有问题,请指出。
我不想要解决方案只是指导,谢谢。
int N;
Node first;
// delete the kth element (where k is between 0 and N-1 inclusive)
public void delete (int k) {
if (k < 0 || k >= N)
throw new IllegalArgumentException();
Node x = first;
if( k == 0){
first = x.next;
N = N - 1;
}
for(int i = 1; i < k; i++){
x = x.next;
N = N - 1;
}
x.next = x.next.next;
N = N - 2;
}
我认为我的列表大小 (int N) 可能有问题。
【问题讨论】:
-
删除一个元素后列表的大小不是总是会减一吗?
-
另外,这是单链表还是双链表?
-
单链表
-
为什么要手动从列表中删除项目?据我所知,LL 有自己的删除(或我不记得的删除)方法,它将处理所需的任何转移和重新链接。
-
OP 正在编写他们的自己的 链表实现,而不是使用
java.util.LinkedList。
标签: java list linked-list nodes