public void AddAtIndex(int index, int val) { LinkedListNodePractice newNode = new LinkedListNodePractice(val); if (index == 0) { //newNode.next = head; //head = newNode; //or AddFirst(val); } else { var curr = head; LinkedListNodePractice prev = null; int i = 0; while (curr != null) { if (i == index) { prev.next = newNode; newNode.next = curr; break; } prev = curr; curr = curr.next; i++; } } }
public void RemoveLast() { var curr = head; LinkedListNodePractice prev = null; while (curr.next != null) { prev = curr; curr = curr.next; } prev.next = null; }
public void Reverse() { var curr = head; LinkedListNodePractice prev = null; while (curr != null) { var next = curr.next; curr.next = prev; prev = curr; curr = next; } head = prev; }
public void AddFirst(int val) { LinkedListNodePractice newNode = new LinkedListNodePractice(val); if (head == null) { head = newNode; } else { newNode.next = head; head = newNode; //Another possible way //var oldHead = head; //head = newNode; //newNode.next = oldHead; } }
public void AddLast(int val) { LinkedListNodePractice newNode = new LinkedListNodePractice(val); if (head == null) { head = newNode; } else { var curr = head; while (curr.next != null) { curr = curr.next; } curr.next = newNode; } }
public void RemoveAtIndex(int index) { if (index == 0) { head = head.next; return; } var curr = head; LinkedListNodePractice prev = null; int i = 0; while (curr != null) { if (i == index) { prev.next = curr.next; curr.next = null; break; } prev = curr; curr = curr.next; i++; } }
public void RemoveFirst() { head = head.next; }