class ListNode{
int val;
@Override
public String toString() {
return "ListNode{" +
"val=" + val +
", next=" + next +
'}';
}
ListNode next;
ListNode(int x){ this.val=x;}
}
class MyLinkedList{
int size;
ListNode head;
@Override
public String toString() {
return "MyLinkedList{" +
"size=" + size +
", head=" + head +
'}';
}
public MyLinkedList(){
this.size=0;
head=new ListNode(0);
}
public int get(int index){
if(index<0||index>=size) return -1;
ListNode curr=head;
for (int i = 0; i <index+1 ; i++) {
curr=curr.next;
}
return curr.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;
++size;
ListNode pred=head;
for (int i = 0; i <index; i++) {
pred=pred.next;
}
ListNode toAdd=new ListNode(val);
toAdd.next= pred.next;
pred.next=toAdd;
}
public void deleteAtIndex(int index){
if(index<0||index>=size) return;
size--;
ListNode pred=head;
for (int i = 0; i <index; i++) {
pred=pred.next;
}
pred.next=pred.next.next;
}
}
public class DEMO_1 {
public static void main(String[] args) {
MyLinkedList myLinkedList=new MyLinkedList();
myLinkedList.addAtHead(11);
myLinkedList.addAtTail(22);
myLinkedList.deleteAtIndex(1);
System.out.println(myLinkedList);
}
}
这边重写是为了更好的看到输出内容,toString系统默认输出的是地址