牛客网 CM11.链表分割

简介: 使用C语言写的解题思路

1.解题思路
此题目思路相对简单,利用双指针,一个指针指向小于val的,一个指针指向大于等于val的,但实现起来,如果仅仅使用单链表,那么还需特别判断第一个指针是否为空从而特意做出特别处理,但如果使用头结点,这样的情况就能被避免,因此使用头结点要相对简单,循环后再将第一个链表与第二个链表相连接就能得到想要的链表
2.代码实现

class Partition {
public:
    ListNode* partition(ListNode* pHead, int x)
     {
       ListNode* p1=( ListNode*)malloc(sizeof(ListNode));
       ListNode* p2=( ListNode*)malloc(sizeof(ListNode));
        ListNode*p1Head=p1;
         ListNode*p2Head=p2;
       ListNode* cur=pHead;
       while(cur)
       {
        if(cur->val<x)
        {
        p1->next=cur;
        p1=p1->next;
        cur=cur->next;
        }
       else 
       {
        p2->next=cur;
        p2=p2->next;
        cur=cur->next; 
       }

       }
       p2->next=NULL;
       p1->next=p2Head->next;
       return p1Head->next;
    }

};

结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!

目录
相关文章
|
2月前
【数据结构】环形、相交、回文、分割、合并、反转链表
【数据结构】环形、相交、回文、分割、合并、反转链表
28 0
|
5月前
【数据结构OJ题】链表分割
牛客题目——链表分割
34 0
【数据结构OJ题】链表分割
【每日一题】牛客网——链表分割
【每日一题】牛客网——链表分割
|
7月前
牛客—CM11 链表分割
牛客—CM11 链表分割
|
7月前
|
Java C++ Python
C/C++每日一练(20230422) 存在重复元素、组合总和、给表达式添加运算符
C/C++每日一练(20230422) 存在重复元素、组合总和、给表达式添加运算符
64 0
C/C++每日一练(20230422) 存在重复元素、组合总和、给表达式添加运算符
|
7月前
|
Python Java Go
Java每日一练(20230401) 合并K个升序链表、最长有效括号、分割回文串
Java每日一练(20230401) 合并K个升序链表、最长有效括号、分割回文串
45 0
Java每日一练(20230401) 合并K个升序链表、最长有效括号、分割回文串
|
7月前
Leecode之分割链表
Leecode之分割链表
LeetCode | 面试题 02.04. 分割链表
LeetCode | 面试题 02.04. 分割链表
|
7月前
牛客网:链表分割
牛客网:链表分割
42 0
|
6月前
|
存储 SQL 算法
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表