老师, 是不是应该再删除时,判断一下链表为空的情况, 否则remove空链表时会报错, 因为dummyHead的next为null
来源:4-5 从链表中删除元素
qq_skywalker_23855555
2020-02-25
Node delNode = prev.next; // 此时会报错
写回答
1回答
-
liuyubobobo
2020-02-26
我们的 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; }
继续加油!:)
042022-06-08
相似问题