leetcode 203
public static ListNode removeElements(ListNode head, int val) {
ListNode p = head;
ListNode pre = null;
while (p != null) {
if (p.val == val) {
if (p == head) {
head = p.next;
pre = head;
} else {
pre.next = p.next;
}
} else {
pre = p;
}
p = p.next;
}
return head;
}
leetcode 707
static class ListNode {
int val;
ListNode next;
ListNode() {
}
ListNode(int val) {
this.val = val;
}
ListNode(int val, ListNode next) {
this.val = val;
this.next = next;
}
}
ListNode head;
ListNode next;
ListNode tail;
int size;
public MyLinkedList() {
head = new ListNode(0);
tail = null;
size =0;
}
public int get(int index) {
if(index<0|| index>size-1) return -1;
ListNode p = head;
for(int i=0;i<=index;i++){
p=p.next;
}
return p.val;
}
public void addAtHead(int val) {
ListNode node = new ListNode(val);
node.next = head.next;
head.next = node;
size++;
}
public void addAtTail(int val) {
addAtIndex(size,val);
}
public void addAtIndex(int index, int val) {
if(index<=0 ) {
addAtHead(val);
return;
}
if(index > size)
return;
ListNode node = new ListNode(val);
ListNode pre = head;
for(int i=0;i<index;i++){
pre= pre.next;
}
node.next = pre.next;
pre.next= node;
size++;
}
public void deleteAtIndex(int index) {
if (index < 0 || index > size - 1) return;
ListNode pre = head;
for (int i = 0; i < index; i++) {
pre = pre.next;
}
pre.next = pre.next.next;
size--;
}
leetcode206
public static ListNode reverseList(ListNode head) {
ListNode pre=null;
ListNode cur = head;
ListNode tmp=null;
while(cur!=null){
tmp= cur.next;
cur.next = pre;
pre = cur;
cur= tmp;
}
return pre;
}