Skip to content

Commit c00c299

Browse files
authored
feat: update rust solution to lc problem: No.0206 (doocs#1664)
No.0206.Reverse Linked List
1 parent 42d39a0 commit c00c299

File tree

3 files changed

+21
-39
lines changed

3 files changed

+21
-39
lines changed

solution/0200-0299/0206.Reverse Linked List/README.md

+7-13
Original file line numberDiff line numberDiff line change
@@ -394,20 +394,14 @@ function reverseList(head: ListNode | null): ListNode | null {
394394
// }
395395
impl Solution {
396396
pub fn reverse_list(head: Option<Box<ListNode>>) -> Option<Box<ListNode>> {
397-
match head {
398-
None => None,
399-
Some(mut head) => {
400-
let mut cur = head.next.take();
401-
let mut pre = Some(head);
402-
while let Some(mut node) = cur {
403-
let next = node.next.take();
404-
node.next = pre;
405-
pre = Some(node);
406-
cur = next;
407-
}
408-
pre
409-
}
397+
let mut head = head;
398+
let mut pre = None;
399+
while let Some(mut node) = head {
400+
head = node.next.take();
401+
node.next = pre.take();
402+
pre = Some(node);
410403
}
404+
pre
411405
}
412406
}
413407
```

solution/0200-0299/0206.Reverse Linked List/README_EN.md

+7-13
Original file line numberDiff line numberDiff line change
@@ -373,20 +373,14 @@ Loop:
373373
// }
374374
impl Solution {
375375
pub fn reverse_list(head: Option<Box<ListNode>>) -> Option<Box<ListNode>> {
376-
match head {
377-
None => None,
378-
Some(mut head) => {
379-
let mut cur = head.next.take();
380-
let mut pre = Some(head);
381-
while let Some(mut node) = cur {
382-
let next = node.next.take();
383-
node.next = pre;
384-
pre = Some(node);
385-
cur = next;
386-
}
387-
pre
388-
}
376+
let mut head = head;
377+
let mut pre = None;
378+
while let Some(mut node) = head {
379+
head = node.next.take();
380+
node.next = pre.take();
381+
pre = Some(node);
389382
}
383+
pre
390384
}
391385
}
392386
```

solution/0200-0299/0206.Reverse Linked List/Solution.rs

+7-13
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,13 @@
1616
// }
1717
impl Solution {
1818
pub fn reverse_list(head: Option<Box<ListNode>>) -> Option<Box<ListNode>> {
19-
match head {
20-
None => None,
21-
Some(mut head) => {
22-
let mut cur = head.next.take();
23-
let mut pre = Some(head);
24-
while let Some(mut node) = cur {
25-
let next = node.next.take();
26-
node.next = pre;
27-
pre = Some(node);
28-
cur = next;
29-
}
30-
pre
31-
}
19+
let mut head = head;
20+
let mut pre = None;
21+
while let Some(mut node) = head {
22+
head = node.next.take();
23+
node.next = pre.take();
24+
pre = Some(node);
3225
}
26+
pre
3327
}
3428
}

0 commit comments

Comments
 (0)