public ListNode(int val = 0, ListNode next = null) { this.val = val; this.next = next; }
internal void ShiftFirst() { firstPointer = firstPointer.next; }
internal void Shift() { firstPointer = firstPointer.next; secondPointer = secondPointer.next; }
public ListNodeAddr(ListNode current) { headPointer = new ListNode(0, current); firstPointer = headPointer; secondPointer = headPointer; }