#1474
Easy Algorithms Delete n nodes after m nodes of a linked list
Linked List
74.4% acceptance
Mar 31, 2026
434
17
No description available.
Solution
Rust
Time O(n)
Space O(1)
impl Solution {
pub fn delete_nodes(head: Option<Box<ListNode>>, m: i32, n: i32) -> Option<Box<ListNode>> {
let mut dummy = Some(Box::new(ListNode { val: 0, next: head }));
let mut curr = dummy.as_mut().unwrap().next.as_mut();
'outer: loop {
// Keep m nodes
for _ in 1..m {
if let Some(node) = curr {
curr = node.next.as_mut();
} else {
break 'outer;
}
}
// curr points to last kept node, now skip n nodes
if let Some(node) = curr {
let mut skip = &mut node.next;
for _ in 0..n {
if let Some(s) = skip {
skip = &mut s.next;
} else {
break;
}
}
let rest = skip.take();
node.next = rest;
curr = node.next.as_mut();
} else {
break;
}
}
dummy.unwrap().next
}
}