采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
Node delNode = prev.next; // 此时会报错
我们的 remove 函数没有这个问题,因为初始的 if(index < 0 || index >= size) 的判断决定了删除的元素肯定在链表内。
public E remove(int index){ if(index < 0 || index >= size) throw new IllegalArgumentException("Remove failed. Index is illegal."); Node prev = dummyHead; for(int i = 0 ; i < index ; i ++) prev = prev.next; Node retNode = prev.next; prev.next = retNode.next; retNode.next = null; size --; return retNode.e; }
继续加油!:)
这个方法是会出问题的,请老师仔细验证下,removeLast方法调用 remove(size - 1)时会出现 prev.next 为null
请给我基于课程的代码(这一小节代码传送门:https://github.com/liuyubobobo/Play-Algorithms-and-Data-Structures/tree/master/07-Linked-List/05-Remove-Element-in-LinkedList/src) 可以复现你所说的错误的完整 main 方法。谢谢。
404 Page not found...
登录后可查看更多问答,登录/注册
动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…
10.4k 16
1.4k 17
1.4k 14
1.3k 14