美文网首页
Partition List

Partition List

作者: 一枚煎餅 | 来源:发表于2016-10-06 06:49 被阅读0次
    Partition List.png

    解題思路 :

    這題能復習到的地方很多 首先建立兩個 node 一個連接 val < x 的 node 另一個連接 val >= x 的 node 接著掃過 list 一遍把整個 list 用這兩個 node 連接好 最後把小的那邊的尾端連接在大的那邊的 head->next (兩邊的 head 都是 dummy 所以要避開)最後再把大的尾端連接的 node 設定為 nullptr 以確保 list 有乾淨切斷

    C++ code :

    <pre><code>
    class Solution {

    public:

    /**
     * @param head: The first node of linked list.
     * @param x: an integer
     * @return: a ListNode 
     */
    ListNode *partition(ListNode *head, int x) {
        // write your code here
        ListNode *less = new ListNode(0);
        ListNode *greater = new ListNode(0);
        ListNode *less_cur = less;
        ListNode *greater_cur = greater;
        
        while(head)
        {
            if(head->val < x)
            {
                less_cur->next = head;
                less_cur = less_cur->next;
            }
            else
            {
                greater_cur->next = head;
                greater_cur = greater_cur->next;
            }
            head = head->next;
        }
        less_cur->next = greater->next;
        greater_cur->next = nullptr;
        return less->next;
    }
    

    };

    相关文章

      网友评论

          本文标题:Partition List

          本文链接:https://www.haomeiwen.com/subject/xqjeyttx.html