java不是很难,C才难,以后有时间再说吧,总是会思路但不会手搓,爪哇太简单咯
下面是单链表的 一会儿再水一篇双链表 嘻嘻 我爱写爪哇
class Node{
int val;
Node next;
public Node(){
}
public Node(int val,Node next){
this.val = val;
this.next = next;
}
}
class MyLinkedList {
int size;
Node head;
public MyLinkedList() {
size = 0;
head = new Node(-1,null);
}
public int get(int index) {
if(index<0||index>=size)
return -1;
Node cur = head;
for(int i=0;i<=index;i++){
cur = cur.next;
}
return cur.val;
}
public void addAtHead(int val) {
addAtIndex(0,val);
}
public void addAtTail(int val) {
addAtIndex(size,val);
}
public void addAtIndex(int index, int val) {
if(index > size||index<0)
return;
Node n = new Node(val,null);
Node cur = head;//head是大家一起用的,找一个代替修改就行
for(int i = 0;i < index;i++)
cur = cur.next;
n.next = cur.next;
cur.next = n;
size++;
}
public void deleteAtIndex(int index) {
if(index>=size||index<0)
return;
Node cur = head;
for(int i=0;i<index;i++){
cur = cur.next;
}
cur.next = cur.next.next;
size--;
}
}
/**
* Your MyLinkedList object will be instantiated and called as such:
* MyLinkedList obj = new MyLinkedList();
* int param_1 = obj.get(index);
* obj.addAtHead(val);
* obj.addAtTail(val);
* obj.addAtIndex(index,val);
* obj.deleteAtIndex(index);
*/