From ae9f740028267ea796289b4b27daab54358271cc Mon Sep 17 00:00:00 2001 From: wavty Date: Fri, 22 Sep 2023 22:39:53 +0800 Subject: [PATCH] feat: update rust solution to lc problem: No.0206 No.0206.Reverse Linked List --- .../0206.Reverse Linked List/README.md | 20 +++++++------------ .../0206.Reverse Linked List/README_EN.md | 20 +++++++------------ .../0206.Reverse Linked List/Solution.rs | 20 +++++++------------ 3 files changed, 21 insertions(+), 39 deletions(-) diff --git a/solution/0200-0299/0206.Reverse Linked List/README.md b/solution/0200-0299/0206.Reverse Linked List/README.md index 9d029ea27de52..f50638a8f6c7c 100644 --- a/solution/0200-0299/0206.Reverse Linked List/README.md +++ b/solution/0200-0299/0206.Reverse Linked List/README.md @@ -394,20 +394,14 @@ function reverseList(head: ListNode | null): ListNode | null { // } impl Solution { pub fn reverse_list(head: Option>) -> Option> { - match head { - None => None, - Some(mut head) => { - let mut cur = head.next.take(); - let mut pre = Some(head); - while let Some(mut node) = cur { - let next = node.next.take(); - node.next = pre; - pre = Some(node); - cur = next; - } - pre - } + let mut head = head; + let mut pre = None; + while let Some(mut node) = head { + head = node.next.take(); + node.next = pre.take(); + pre = Some(node); } + pre } } ``` diff --git a/solution/0200-0299/0206.Reverse Linked List/README_EN.md b/solution/0200-0299/0206.Reverse Linked List/README_EN.md index 1161394e1842d..478470e2a6195 100644 --- a/solution/0200-0299/0206.Reverse Linked List/README_EN.md +++ b/solution/0200-0299/0206.Reverse Linked List/README_EN.md @@ -373,20 +373,14 @@ Loop: // } impl Solution { pub fn reverse_list(head: Option>) -> Option> { - match head { - None => None, - Some(mut head) => { - let mut cur = head.next.take(); - let mut pre = Some(head); - while let Some(mut node) = cur { - let next = node.next.take(); - node.next = pre; - pre = Some(node); - cur = next; - } - pre - } + let mut head = head; + let mut pre = None; + while let Some(mut node) = head { + head = node.next.take(); + node.next = pre.take(); + pre = Some(node); } + pre } } ``` diff --git a/solution/0200-0299/0206.Reverse Linked List/Solution.rs b/solution/0200-0299/0206.Reverse Linked List/Solution.rs index 96a38fd5ee330..f15648cccd641 100644 --- a/solution/0200-0299/0206.Reverse Linked List/Solution.rs +++ b/solution/0200-0299/0206.Reverse Linked List/Solution.rs @@ -16,19 +16,13 @@ // } impl Solution { pub fn reverse_list(head: Option>) -> Option> { - match head { - None => None, - Some(mut head) => { - let mut cur = head.next.take(); - let mut pre = Some(head); - while let Some(mut node) = cur { - let next = node.next.take(); - node.next = pre; - pre = Some(node); - cur = next; - } - pre - } + let mut head = head; + let mut pre = None; + while let Some(mut node) = head { + head = node.next.take(); + node.next = pre.take(); + pre = Some(node); } + pre } }