public void RemoveLast() { if (Count != 0) { if (Count == 1) { Head = null; Tail = null; } else { ListNode currrent = Head; while (currrent.next != Tail) { currrent.next = null; Tail = currrent; } } Count--; } }
private ListNode getMiddle(ListNode head) { // Base case if (head == null) { return(head); } ListNode fastptr = Head.next; ListNode slowptr = head; // Move fastptr by two and slow ptr by one // Finally slowptr will point to middle node while (fastptr != null) { fastptr = fastptr.next; if (fastptr != null) { slowptr = slowptr.next; fastptr = fastptr.next; } } return(slowptr); }