Mid
From PDF
Coding
C# Coding Interview
Reverse a portion of a linked list (from position m to n)?
Short answer: ListNode ReverseBetween(ListNode head, int m, int n) {
Example code
if (head == null || m == n) return head;
ListNode dummy = new ListNode(0);
dummy.next = head;
ListNode prev = dummy; // Move prev to one before m-th node for (int i = 1; i < m; i++) prev = prev.next;
ListNode start = prev.next;
ListNode then = start.next; // Reverse the sublist for (int i = 0; i < n - m; i++) { Follow on: start.next = then.next;
then.next = prev.next;
prev.next = then;
then = start.next;
}
return dummy.next;
} Explanation: Use a dummy node to simplify edge cases. Reverse nodes between m and n by changing pointers.
Real-world example (ShopNest)
In coding rounds, state complexity aloud, write a clear ShopNest-flavored example (orders, carts), then handle edge cases (empty list, null, overflow).
Say this in the interview
- Define — one clear sentence (the short answer above).
- Example — relate it to a project like ShopNest or your real work.
- Trade-off — when you would not use it.
Share this Q&A
Share preview image: https://www.toolliyo.com/images/toolliyo-logo.png