Delete Node in a Linked List (O(1) trick)

Data Structures
Easy
Google
37.3K views

Given only a reference to the node that is to be deleted in a singly linked list (not the head), delete the node. This is an $O(1)$ constant time operation.

Why Interviewers Ask This

Google interviewers ask this question to evaluate a candidate's ability to think outside standard algorithmic patterns and their understanding of memory manipulation constraints. It tests whether you can recognize that deleting a node without a head pointer requires copying data rather than adjusting pointers, revealing your depth in Data Structures fundamentals and problem-solving creativity under strict time complexity requirements.

How to Answer This Question

1. Clarify Constraints: Immediately confirm that you only have access to the target node and cannot traverse from the head, which makes traditional deletion impossible. 2. Propose the O(1) Strategy: Explain the 'copy-and-skip' technique where you copy the next node's value into the current node and then bypass the next node by updating the current node's next pointer. 3. Address Edge Cases: Explicitly discuss the limitation where this method fails if the node to be deleted is the tail, noting that true deletion is impossible in O(1) for the last node without a previous reference. 4. Walk Through Logic: Verbally trace the pointer changes using a concrete example list (e.g., 1->2->3->4) to demonstrate how the node effectively vanishes from the sequence. 5. Analyze Complexity: Conclude by confirming the time complexity is O(1) and space complexity is O(1), aligning with Google's focus on efficiency and rigorous analysis.

Key Points to Cover

  • Recognizing the impossibility of standard pointer adjustment without a head reference
  • Implementing the 'copy-next-value-and-skip' pattern correctly
  • Identifying and explaining the tail node edge case limitation
  • Maintaining strict O(1) time and space complexity throughout the solution
  • Demonstrating clear communication of pointer manipulation logic

Sample Answer

To solve this efficiently in constant time without access to the head, I would use the 'copy-and-skip' approach. Since we cannot update the previous node's pointer to skip the current one, we simulate deletion by overwri…

Common Mistakes to Avoid

  • Attempting to traverse from the head to find the previous node, violating the problem constraint of only having the target node reference
  • Failing to mention that the solution does not work for the last node in the list, showing incomplete edge case analysis
  • Confusing the operation with doubly-linked list deletion, which allows backward traversal to adjust pointers
  • Not explicitly stating why the time complexity remains constant despite the unusual logic

Sound confident on this question in 5 minutes

Answer once and get a 30-second AI critique of your structure, content, and delivery. First attempt is free — no signup needed.

Try it free

Related Interview Questions

Browse all 162 Data Structures questionsBrowse all 129 Google questions