单链表算法 - 链表分割
创始人
2025-01-10 06:37:46
0

链表分割_牛客题霸_牛客网现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的。题目来自【牛客题霸】icon-default.png?t=N7T8https://www.nowcoder.com/practice/0e27e0b064de4eacac178676ef9c9d70思路:

代码:

/* struct ListNode {     int val;     struct ListNode *next;     ListNode(int x) : val(x), next(NULL) {} };*/ class Partition { public:     ListNode* partition(ListNode* pHead, int x) {         // write code here         //创建两个非空链表:小链表和大链表         ListNode* lesstHead,*lesstTail;         lesstHead = lesstTail = (ListNode*)malloc(sizeof(ListNode));          ListNode* greaterHead,*greaterTail;         greaterHead = greaterTail = (ListNode*)malloc(sizeof(ListNode));         //创建临时变量来遍历原数组         ListNode* prev = pHead;         while(prev)         {             //判断当前节点是否小于x             if(prev->val < x)             {                 //插入到小链表中                 lesstTail->next = prev;                 lesstTail = lesstTail->next;             }             else             {                 //插入到大链表中                 greaterTail->next = prev;                 greaterTail = greaterTail->next;             }             prev = prev->next;         }         //退出循环原链表遍历完成         //连接两个链表         lesstTail->next = greaterHead->next;         ListNode* ret = lesstHead->next;         free(lesstHead);         lesstHead = NULL;         free(greaterHead);         greaterHead = NULL;         return ret;     } };

提交结果:

当我们提交代码之后代码有问题,那么代码到底哪里的逻辑不合适呢?我们画图看一下。

/* struct ListNode {     int val;     struct ListNode *next;     ListNode(int x) : val(x), next(NULL) {} };*/ class Partition { public:     ListNode* partition(ListNode* pHead, int x) {         // write code here         //创建两个非空链表:小链表和大链表         ListNode* lesstHead,*lesstTail;         lesstHead = lesstTail = (ListNode*)malloc(sizeof(ListNode));          ListNode* greaterHead,*greaterTail;         greaterHead = greaterTail = (ListNode*)malloc(sizeof(ListNode));         //创建临时变量来遍历原数组         ListNode* prev = pHead;         while(prev)         {             //判断当前节点是否小于x             if(prev->val < x)             {                 //插入到小链表中                 lesstTail->next = prev;                 lesstTail = lesstTail->next;             }             else             {                 //插入到大链表中                 greaterTail->next = prev;                 greaterTail = greaterTail->next;             }             prev = prev->next;         }         //将大链表的尾节点的next指针置为NULL         greaterTail->next = NULL;         //连接两个链表         lesstTail->next = greaterHead->next;         ListNode* ret = lesstHead->next;         free(lesstHead);         lesstHead = NULL;         free(greaterHead);         greaterHead = NULL;         return ret;     } };

提交结果:

相关内容

热门资讯

黑科技app(wpk苹果版)外... 黑科技app(wpk苹果版)外挂透明挂辅助器(透视)玩家教程(2022已更新)(哔哩哔哩);wpk苹...
黑科技科技(aapoker记牌... 黑科技科技(aapoker记牌器)太无语了固有是真的有挂(透视)技巧教程(2020已更新)(哔哩哔哩...
黑科技最新(aapoker)外... 1、黑科技最新(aapoker)外挂透明挂黑科技辅助软件(透视)黑科技教程(2021已更新)(哔哩哔...
黑科技真的!wepoke软件透... 黑科技真的!wepoke软件透明挂,太离谱了原来是真的有挂(透视)解密教程(2020已更新)(哔哩哔...
黑科技插件(Wepoke安卓)... 黑科技插件(Wepoke安卓)外挂透明挂辅助app(透视)2025新版教程(2021已更新)(哔哩哔...
黑科技攻略(线上wpk德州ai... 黑科技攻略(线上wpk德州ai机器人)太嚣张了一直有挂(透视)AA德州教程(2020已更新)(哔哩哔...
黑科技透明挂(德州扑克)外挂透... 黑科技透明挂(德州扑克)外挂透明挂黑科技辅助代打(透视)扑克教程(2020已更新)(哔哩哔哩)1、这...
黑科技系统(GG扑克)外挂透明... 黑科技系统(GG扑克)外挂透明挂辅助app(透视)揭秘教程(2020已更新)(哔哩哔哩)1、完成GG...
黑科技安装(微扑克ai辅助神器... 自定义微扑克ai辅助神器系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,不...
黑科技设备(微扑克插件)外挂透... 黑科技设备(微扑克插件)外挂透明挂黑科技辅助神器(透视)线上教程(2025已更新)(哔哩哔哩)是一款...