MCPcopy Create free account
hub / github.com/douchuan/algorithm / do_reverse

Function do_reverse

src/ll/reverse.rs:9–18  ·  view source on GitHub ↗

递归,先找到tail,然后从后向前修正指针

(node: Option<NonNull<Node<T>>>)

Source from the content-addressed store, hash-verified

7
8// 递归,先找到tail,然后从后向前修正指针
9pub(crate) unsafe fn do_reverse<T>(node: Option<NonNull<Node<T>>>) -> Option<NonNull<Node<T>>> {
10 node.and_then(|mut node| match node.as_mut().next.take() {
11 None => Some(node), // new_head, origin tail
12 Some(mut next) => {
13 let new_head = do_reverse(Some(next));
14 next.as_mut().next = Some(node);
15 new_head
16 }
17 })
18}

Callers 1

reverseMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected