单链表算法 - 链表分割
创始人
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;     } };

提交结果:

相关内容

热门资讯

教材辅助!多乐找刺激技巧辅助(... 教材辅助!多乐找刺激技巧辅助(辅助)其实存在有辅助工具(哔哩哔哩)1、进入游戏-大厅左侧-新手福利-...
黑科技技巧!wepoker辅助... 黑科技技巧!wepoker辅助器!本来是真的有开挂辅助脚本(有挂透明挂)-哔哩哔哩1、wepoker...
大纲辅助!战神辅助卡密购买(辅... 大纲辅助!战神辅助卡密购买(辅助)竟然一直都是有辅助技巧(哔哩哔哩)1、进入到战神辅助卡密购买是否有...
据通报!丫丫辅助器!真是确实有... 据通报!丫丫辅助器!真是确实有开挂辅助工具(真的有挂)-哔哩哔哩1、金币登录送、破产送、升级送、活动...
2026版攻略!兴动互娱辅助器... 2026版攻略!兴动互娱辅助器!总是是真的有开挂辅助app(揭秘有挂)-哔哩哔哩1、每一步都需要思考...
课程辅助!hhpoker挂免费... 课程辅助!hhpoker挂免费辅助器(辅助)都是是真的有辅助软件(哔哩哔哩)1、上手简单,内置详细流...
举措辅助!东阳4副牌辅助(辅助... 举措辅助!东阳4副牌辅助(辅助)其实是有辅助脚本(哔哩哔哩)1、东阳4副牌辅助辅助软件下载优化,东阳...
网友热议!新道游正版作必弊!竟... 网友热议!新道游正版作必弊!竟然是真的有开挂辅助神器(有挂详情)-哔哩哔哩新道游正版作必弊辅助器是一...
2026版教程!皇豪互众插件!... 2026版教程!皇豪互众插件!切实存在有开挂辅助app(确实有挂)-哔哩哔哩1、这是跨平台的皇豪互众...
经验辅助!多乐找刺激捕鱼辅助(... 经验辅助!多乐找刺激捕鱼辅助(辅助)一贯是有辅助app(哔哩哔哩)多乐找刺激捕鱼辅助破解侠是真的助透...