移除链表元素
设计链表
问题代码
问题所在:
1.链表应该有大小,初始大小为0,且随着添加,删除节点的操作动态变化。对于添加节点的索引index而言,size大小是判断其是否有意义的依据。另外每个链表应该有虚拟头节点,方便统一操作,指向index节点的前驱。
2.没有根据题目要求限制addAtIndex方法中index的范围。
3.addAtHead(val)、addAtTail(val)和addAtIndex(index,val)为特殊和一般的关系,先写addAtIndex(index,val)方法,在另外两个里面调用会使代码简洁。
206.翻转链表
问题代码
报错提示如图所示,查阅问题资料后得知,最后一个元素的next一定要指向null,否则会报该错。
另外,while循环中根据循环内容体的逻辑可知,无需对cur.next做判断,前一次循环中如果cur.next为空,prev就是链表实际的最后值,则没有下一次循环。
正确代码