Tee*_*emo 6 java linked-list list nodes
这是功课
我被要求从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;
}
Run Code Online (Sandbox Code Playgroud)
我想我可能在列表大小(int N)上做错了.
删除节点时,只需将 k 中的前一个Node节点更改next为(新的)下一个节点,并递减N( N--) 即可更新列表大小。
编辑
另请注意 for 循环,您正在更改节点之前所有节点的下一个k