牛客网 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;
    }

};

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

目录
相关文章
|
6天前
面试题 02.04:分割链表
面试题 02.04:分割链表
38 0
|
6天前
Leecode之分割链表
Leecode之分割链表
|
6天前
|
Java C++ Python
C/C++每日一练(20230422) 存在重复元素、组合总和、给表达式添加运算符
C/C++每日一练(20230422) 存在重复元素、组合总和、给表达式添加运算符
33 0
C/C++每日一练(20230422) 存在重复元素、组合总和、给表达式添加运算符
|
6天前
|
Python Java Go
Java每日一练(20230401) 合并K个升序链表、最长有效括号、分割回文串
Java每日一练(20230401) 合并K个升序链表、最长有效括号、分割回文串
24 0
Java每日一练(20230401) 合并K个升序链表、最长有效括号、分割回文串
LeetCode | 面试题 02.04. 分割链表
LeetCode | 面试题 02.04. 分割链表
|
6天前
牛客网:链表分割
牛客网:链表分割
18 0
|
6天前
|
存储 C语言 C++
带哨兵位的单链表之 链表分割
带哨兵位的单链表之 链表分割
|
5月前
|
算法 测试技术
牛客CM11 - 链表分割【环形链表雏形】
牛客CM11 - 链表分割【环形链表雏形】
28 0
|
6月前
面试题 02.04. 分割链表(LeetCode)
面试题 02.04. 分割链表(LeetCode)
面试题 02.04. 分割链表(LeetCode)
|
7月前
|
存储
【链表OJ】链表中倒数第k个结点 合并两个链表(含哨兵位) 分割链表 链表的回文结构
【链表OJ】链表中倒数第k个结点 合并两个链表(含哨兵位) 分割链表 链表的回文结构