Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class MyLinkedList {
- Node head;
- int size = 0;
- static class Node {
- int val;
- Node next;
- public Node() {}
- public Node(int val) {
- this.val = val;
- }
- public Node(int val, Node next) {
- this.val = val;
- this.next = next;
- }
- }
- public MyLinkedList() {
- this.head = new Node();
- this.size = 0;
- }
- public int get(int index) {
- if(size == 0) return -1;
- int idx = 0;
- Node temp = head;
- while(temp != null) {
- if(idx == index) return temp.val;
- idx++;
- temp = temp.next;
- }
- // print();
- return -1;
- }
- public void addAtHead(int val) {
- if(size == 0) head.val = val;
- else{
- Node temp = head;
- head = new Node(val);
- head.next = temp;
- }
- size++;
- // print();
- }
- public void addAtTail(int val) {
- if(size == 0) {
- addAtHead(val);
- return;
- }
- Node newNode = new Node(val);
- Node temp = head;
- while(temp.next != null) {
- temp = temp.next;
- }
- temp.next = newNode;
- size++;
- // print();
- }
- public void addAtIndex(int index, int val) {
- if(index > 0 && size == 0) {
- return;
- }
- if(index == 0 || size == 0) {
- addAtHead(val);
- return;
- }
- if(index > size-1) {
- addAtTail(val);
- return;
- }
- Node newNode = new Node(val);
- Node temp = head;
- int idx = 0;
- while(temp != null && idx != index-1) {
- idx++;
- temp = temp.next;
- }
- if(temp == null) {
- addAtTail(val);
- return;
- }
- Node old = temp.next;
- temp.next = newNode;
- newNode.next = old;
- size++;
- // print();
- }
- public void deleteAtIndex(int index) {
- if(index > size-1) {
- return;
- }
- if(index == 0) {
- head = head.next;
- return;
- }
- int idx = 0;
- Node temp = head;
- while(temp != null && idx != index-1) {
- idx++;
- temp = temp.next;
- }
- if(temp != null && temp.next != null) temp.next = temp.next.next;
- size--;
- // print();
- }
- // public void print() {
- // Node temp = head;
- // while(temp != null) {
- // System.out.print(temp.val + " ");
- // temp = temp.next;
- // }
- // System.out.println("Size:" + this.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);
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement