diff options
| author | crupest <crupest@outlook.com> | 2020-08-05 16:49:09 +0800 | 
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2020-08-05 16:49:09 +0800 | 
| commit | 93a4aef31b3012a4a0938a557c88e2a09032ea98 (patch) | |
| tree | 4983f6f458d962d06f1ac37598825a92a6348a2c | |
| parent | 7d6dea6d15b2b9f6a5b3d86bf24afa98b9821ad4 (diff) | |
| download | crupest-93a4aef31b3012a4a0938a557c88e2a09032ea98.tar.gz crupest-93a4aef31b3012a4a0938a557c88e2a09032ea98.tar.bz2 crupest-93a4aef31b3012a4a0938a557c88e2a09032ea98.zip  | |
import(solutions): Add problem 328.
| -rw-r--r-- | works/solutions/cpp/328.cpp | 51 | 
1 files changed, 51 insertions, 0 deletions
diff --git a/works/solutions/cpp/328.cpp b/works/solutions/cpp/328.cpp new file mode 100644 index 0000000..de3ad0b --- /dev/null +++ b/works/solutions/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;
 +    }
 +};
  | 
