blob: ed844098df6fa9730594a43aac9fd7f1beecda8b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#[derive(PartialEq, Eq, Clone, Debug)]
struct Solution;
pub struct ListNode {
pub val: i32,
pub next: Option<Box<ListNode>>
}
impl ListNode {
#[inline]
fn new(val: i32) -> Self {
ListNode {
next: None,
val
}
}
}
impl Solution {
pub fn middle_node(head: Option<Box<ListNode>>) -> Option<Box<ListNode>> {
let mut curr = &head;
let mut node_vec: Vec<Option<Box<ListNode>>> = vec![];
while let Some(node) = curr.as_ref() {
node_vec.push(Some(node.clone()));
curr = &curr.as_ref().unwrap().next;
}
node_vec[node_vec.len() / 2].clone()
}
}
|