class MyLinkedList {
- public MyLinkedList() {
- public int get(int index) {
- public void addAtHead(int val) {
- public void addAtTail(int val) {
- public void addAtIndex(int index, int val) {
- public void deleteAtIndex(int index) {
设计链表的实现
要求实现一个构造方法
一个get 根据index返回返回节点的值 无则返回-1
在链表 头 尾 指定index 插入数据
删除指定index的数据
构造方法
就建立一个新链表
get
使用指针 指针后移index 返回所指的节点的val
add 头
建立哑结点指向头
让加入的节点指向head
哑结点指向加入的节点
head改为哑结点
add尾
- 建立类 ListNode
- val
- next
- ListNode(int x)
- 实现 MyLinkedList
- size
- head
- 构造方法
- size为0
- head为哑结点
- get
- 如果index<0或>size 返回-1
- 节点curr等于head
- 遍历链表 curr后移
- 直到index+1(从0开始)
- 返回curr的值
- add头
- 调用add(0,val)
- add尾
- 调用add(size,val)
- add
- 如果index>size 返回
- 如果index<0
- 说明链表没数据 令index=0
- ++size
- 节点curr等于head
- 遍历链表 curr后移
- 直到index
- 节点node 值为val
- node的next为curr的next
- curr的next为node
- delete
- 如果index<0或>size 返回
- size--
- 节点curr等于head
- 遍历链表 curr后移
- 直到index
- curr的next等于curr的next的next// 即 越过了第index个节点 相当于山粗了