143. Reorder List(List)

來源:互聯網
上載者:User

標籤:

Given a singly linked list L: L0→L1→…→Ln-1→Ln,
reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…

You must do this in-place without altering the nodes‘ values.

For example,
Given {1,2,3,4}, reorder it to {1,4,2,3}.

class Solution {public:    void reorderList(ListNode *head) {        if (!head|| !head->next)          return;            // partition the list into 2 sublists of equal length          ListNode *slowNode = head, *fastNode = head;          while (fastNode->next) {              fastNode = fastNode->next;              if (fastNode->next) {                  fastNode = fastNode->next;              } else {                  break;              }              slowNode = slowNode->next;          }          // 2 sublist heads          ListNode *head1 = head, *head2 = slowNode->next;          // detach the two sublists          slowNode->next = NULL;                // reverse the second sublist          ListNode *cur = head2, *post = cur->next;          cur->next = NULL;          while (post) {              ListNode* temp = post->next;              post->next = cur;              cur = post;              post = temp;          }          head2 = cur; // the new head of the reversed sublist                // merge the 2 sublists as required          ListNode* p = head1, *q = head2;          while (q ) {              ListNode *temp1 = p->next;              ListNode *temp2 = q->next;              p->next = q;              q->next = temp1;              p = temp1;              q = temp2;          }      }  };

 

143. Reorder List(List)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.