86. 分隔链表

就是用两个head 一个是大,一个是小,然后分别制定,一定要将Big->next = NULL; 否则会形成循环列表,超出时间限制。

class Solution {

public:

    ListNode* partition(ListNode* head, int x) {

        ListNode* DummySmall = new ListNode(0);

        ListNode* DummyBig = new ListNode(0);

        ListNode* Small = new ListNode(0);

        ListNode* Big = new ListNode(0);

        DummySmall->next = Small;

        DummyBig->next = Big;

        while(head != NULL){   

            if(head->val < x){

               //ListNode* SmallNew = new ListNode(head->val);

               Small->next = head;

               Small = Small->next;

            }

            else{

               //ListNode* BigNew = new ListNode(head->val);

               Big->next = head;

               Big = Big->next;

            }

            head = head->next;

        }

        Big->next = NULL;

        Small->next = DummyBig->next->next;

        return  DummySmall->next->next;

    }

};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章