91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Partition相關問題怎么解決

發布時間:2021-12-09 16:51:47 來源:億速云 閱讀:155 作者:iii 欄目:編程語言

本篇內容主要講解“Partition相關問題怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Partition相關問題怎么解決”吧!

題意:

根據給定鏈表和給定值X,把大于X值的放在X右邊,小于X值的放在X左邊。并不改變相對位置,比如4和3都大于等于3,那么他們移到右邊后位置仍為4在前,3在后。

思路:

1)鏈表為空或者只有一個節點,返回即可。

2)定義兩個鏈表list和back,分別存放小于X節點的鏈表和大于等于X的鏈表。使用二級指針方便頭節點處理。

3)while循環結束后,list和back鏈表的最后節點的next并未置NULL。所以把back鏈表尾節點next置NULL。并把back追加到list后面即可。

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* partition(struct ListNode* head, int x)
{
    if ( head == NULL || head->next == NULL )
    {
        return head;
    }
    struct ListNode *list = NULL;
    struct ListNode **first  = &list;
    struct ListNode *back = NULL;
    struct ListNode **second = &back;
        
    while ( head )
    {   
        if ( head->val < x)
        {   
            *first = head;
            first = &(*first)->next;
        }   
        else
        {   
            *second = head;
            second = &(*second)->next;
        }
        
        head = head->next;
    }
    
    *second = NULL;
    *first = back;
    
    return list;
}

到此,相信大家對“Partition相關問題怎么解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江北区| 南投县| 凌云县| 罗城| 汽车| 塘沽区| 扶绥县| 合肥市| 毕节市| 汉寿县| 广河县| 太仓市| 探索| 交口县| 榕江县| 海安县| 荣成市| 乌兰县| 朝阳区| 宜春市| 湖北省| 广东省| 石门县| 玉山县| 北安市| 阜新| 元谋县| 横山县| 三亚市| 泽普县| 新建县| 鸡东县| 汉中市| 宁化县| 柏乡县| 秦皇岛市| 大兴区| 小金县| 青川县| 沧州市| 旌德县|