数据结构:(牛客)CM11 链表分割

server/2025/1/16 5:45:01/

描述

现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。

/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {}
};*/#include <cfloat>
class Partition {
public:ListNode* partition(ListNode* pHead, int x) {typedef struct ListNode ListNode;//创建两个非空的链表:小链表,大链表ListNode *lessHead, *lessTail;lessHead=lessTail=( ListNode*)malloc(sizeof(ListNode));ListNode*greaterHead,*greaterTail;greaterHead=greaterTail=(ListNode*)malloc(sizeof( ListNode));//遍历链表,找到小于x的值尾插到小链表的尾结点,反之ListNode*pcur=pHead;while(pcur){if(pcur->val<x){lessTail->next=pcur;lessTail=lessTail->next;}else{greaterTail->next=pcur;greaterTail=greaterTail->next;}pcur=pcur->next;}//大小链表合并greaterTail->next=NULL;lessTail->next=greaterHead->next;ListNode*ret=lessHead->next;free(lessHead);free(greaterHead);lessHead=greaterHead=NULL;return ret;}
};


http://www.ppmy.cn/server/117344.html

相关文章

LeetCode 16. 最接近的三数之和

题目描述 分析 这道题和上一道思想类似&#xff0c;都是固定一个最左侧指针&#xff0c;然后使用双指针进行一个遍历。不同的是本题不需要去重&#xff0c;即找到一个最接近的解即可。初始化起始解的思想比较好&#xff0c;可以借鉴。 代码&#xff08;Java&#xff09; clas…

大数据时代下会计数字化的思考与建议

引言 随着信息技术的飞速发展&#xff0c;大数据已成为推动社会进步和经济发展的新引擎。会计行业作为经济活动的重要组成部分&#xff0c;其数字化转型已成为必然趋势。本文旨在探讨大数据时代下会计数字化的现状、挑战以及未来的发展方向&#xff0c;并提出相应的思考与建议。…

第十七节:学习Hutool上传文件(自学Spring boot 3.x的第四天)

这节记录下如何使用Hutool库上传本地的文件到服务器端&#xff08;因为是练习&#xff0c;所以是本地端&#xff09;。 第一步&#xff1a;引入Hutool库最新版本&#xff0c;通过maven方式。&#xff08;最新版本需去maven仓库查询&#xff09; 第二步&#xff1a;编写一个post…

路径规划 | 基于A*算法的往返式全覆盖路径规划的改进算法(Matlab)

目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 基于A*算法的往返式全覆盖路径规划的改进算法 matlab实现代码 往返式全覆盖路径规划&#xff0c;通过建立二维栅格地图&#xff0c;设置障碍物&#xff0c;以及起始点根据定义往返式路径规划的定义的优先级运动规则从…

MySQL 查询数据库的数据总量

需求&#xff1a;查看MySQL数据库的数据总量&#xff0c;以MB为单位展示数据库占用的磁盘空间 实践&#xff1a; 登录到MySQL数据库服务器。 选择你想要查看数据总量的数据库&#xff1a; USE shield;运行查询以获取数据库的总大小&#xff1a; SELECT table_schema AS Datab…

如何利用Java进行快速的足球大小球及亚盘数据处理与分析

在当今信息爆炸的时代&#xff0c;大量的数据产生和积累&#xff0c;对于企业和个人来说&#xff0c;如何高效地处理和分析这些数据成为了一项重要的任务。Java作为一门强大的编程语言&#xff0c;提供了丰富的工具和库&#xff0c;可以帮助我们快速进行数据处理与分析。下面将…

接口测试到底测试什么?

我给你说一个值20K的答案&#xff0c;主要有以下几个点&#xff1a; 第一&#xff1a;可用性测试&#xff0c;根据约定的协议、方法、格式、内容等传输数据到接口&#xff0c;经处理后返回期望的结果。 这里分为三个点&#xff1a; 1&#xff0c;接口功能是否正确。 2&…

Ubuntu22.04系统安装opencv步骤简述及问题解决方法

前言 opencv是一个功能强大、开源且跨平台的计算机视觉库&#xff0c;适用于多种编程语言和操作系统&#xff0c;能够帮助开发者构建各种视觉项目。其模块众多&#xff0c;提供了诸多功能&#xff0c;能够进行图像处理、视频处理等等。比如&#xff1a;Highgui模块提供图像用户…