From dc1f0c4c0096013799416664894c5194dc7e1f52 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 28 Feb 2025 23:13:39 +0800 Subject: chore(store): move everything to store. --- store/works/solutions/leetcode/cpp/328.cpp | 51 ++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 store/works/solutions/leetcode/cpp/328.cpp (limited to 'store/works/solutions/leetcode/cpp/328.cpp') diff --git a/store/works/solutions/leetcode/cpp/328.cpp b/store/works/solutions/leetcode/cpp/328.cpp new file mode 100644 index 0000000..de3ad0b --- /dev/null +++ b/store/works/solutions/leetcode/cpp/328.cpp @@ -0,0 +1,51 @@ +struct ListNode +{ + int val; + ListNode *next; + ListNode() : val(0), next(nullptr) {} + ListNode(int x) : val(x), next(nullptr) {} + ListNode(int x, ListNode *next) : val(x), next(next) {} +}; + +class Solution +{ +public: + ListNode *oddEvenList(ListNode *head) + { + if (head == nullptr) + return nullptr; + + if (head->next == nullptr) + return head; + + ListNode *odd_head = head; + head = head->next; + ListNode *even_head = head; + head = head->next; + + ListNode *odd_current = odd_head; + ListNode *even_current = even_head; + + bool odd = true; + while (head != nullptr) + { + if (odd) + { + odd_current->next = head; + odd_current = head; + } + else + { + even_current->next = head; + even_current = head; + } + head = head->next; + odd = !odd; + } + + odd_current->next = even_head; + even_current->next = nullptr; + + return odd_head; + } +}; -- cgit v1.2.3