题目详解
相关链接
思路
- 先定义节点类
ListNode
,在他基础上实现链表类MyLinkedList
MyLinkedList
的构造函数中需要链表的头结点head
和长度size
,后续的方法操作会更新相应的值
看完代码随想录之后的想法
- 链表的增删操作都可以直接用虚拟头节点
实现过程中遇到的困难
边界情况总是忘记处理,出现空指针异常,提交了多次才ac,比如:
addAtTail
时如果链表为空,实际就是addAtHead
addAtIndex`
index <= 0时实际就是
addAtHead,
index === this.size时实际就是
addAtTail`deleteAtIndex
可能会删头结点,需要用一个dummyHead
来处理
代码
1 | class LinkNode { |
收获
- 对链表操作和手写数据结构有了更多认识