1
impl Solution {
2
pub fn odd_even_list(head: Option<Box<ListNode>>) -> Option<Box<ListNode>> {
3
let mut head = head;
4
let mut odd = Box::new(ListNode::new(-1));
5
let mut cur_odd = &mut odd;
6
let mut even = Box::new(ListNode::new(-1));
7
let mut cur_even = &mut even;
8
let mut is_odd = true;
9
while head.is_some() {
10
if is_odd {
11
cur_odd.next = head;
12
cur_odd = cur_odd.next.as_mut()?;
13
head = cur_odd.next.take();
14
} else {
15
cur_even.next = head;
16
cur_even = cur_even.next.as_mut()?;
17
head = cur_even.next.take();
18
}
19
is_odd = !is_odd;
20
}
21
cur_odd.next = even.next;
22
return odd.next;
23
}
24
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0