编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 。

2023-11-11

编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。

解题思路:
构造两个新的带头单向链表;将小于X的插到lessHead链表上,将大于等于X的插到greatHead链表上。最后合并两个链表,去掉带头结点。

/*
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* lessHead = (ListNode*)malloc(sizeof(ListNode));
		lessHead->next = NULL;
		ListNode* lessTail = lessHead;

		ListNode* greatHead = (ListNode*)malloc(sizeof(ListNode));
		greatHead->next = NULL;
		ListNode* greatTail = greatHead;

		ListNode* cur = pHead;

		while (cur)
		{
			if (cur->val<x)
			{
				lessTail->next = cur;
				lessTail = cur;
			}
			else
			{
				greatTail->next = cur;
				greatTail = cur;
			}
			cur = cur->next;
		}
		greatTail->next = NULL;
		lessTail->next = greatHead->next;

		ListNode* list = lessHead->next;
		free(lessHead);
		free(greatHead);
		return list;
	}
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 。 的相关文章

  • librosa安装错误

    一开始的错误 AttributeError type object h5py h5 H5PYConfig has no attribute reduce cython 解决办法 卸载h5py然后安装librosa conda install
  • Python 装饰器详解

    1 为什么需要装饰器 Leader让小A写两个数字相加和相减的函数 小A很快就写完了 def add x y return x y def sub x y return x y if name main result add 1 2 pri
  • SpringBoot多数据源nacos配置

    1 背景 因新项目对旧系统业务的重构 原有业务也只有单一数据源 项目开发到后期 现场存在历史数据迁移问题 在讨论后希望系统支持多数源的方式解决对历史数据同步调用的问题 项目的配置文件为nacos配置 涉及多个现场的升级部署 因此希望改动影响
  • Python爬虫:保姆级教你完成数据存储

    数据存储 在前面的几篇文章中 我分别总结了 什么是爬虫 requests模块总结 正则表达式提取数据 XPath解析数据 Beautiful Soup解析数据 pyquery解析数据 jsonpath提取json数据 在上面的几篇文章当中都
  • 微云网页版服务器繁忙,腾讯微云传输速度慢的几种原因及解决方法

    大家经常使用腾讯微云吧 不过大家知道腾讯微云传输速度慢怎么办吗 下面小编就给大家分享腾讯微云传输速度慢的几种原因及解决方法 希望会对你有所帮助 腾讯微云传输速度慢的几种原因及解决方法 1 网络宽带本身速度慢 解决办法 当处于网络使用高峰期的
  • JMeter 实时监控仪表板配置 (Grafana + InfluxDB)

    在服务器上跑 JMeter 做压测的话 给工具本身也配上实时监控是必须的 命令行输出能提供的信息太少 JMeter的 Backend Listener 支持 Graphite 和 InfluxDB 这里选择 InfluxDB 做时序数据库
  • 【Qt】贴图实现方向控制盘

    版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net iriczhao article details 122052059 一 效果走一波
  • 【Java基础】Windows快捷键

    Windows常用快捷键以及操作 注 本文内容均来自B站up 遇见狂神说 仅做学习使用 如有侵权删 1 与Ctrl有关的快捷键 Ctrl C 复制 Ctrl V 粘贴 Ctrl X 剪切 Ctrl Z 撤销 Ctrl A 全选 Ctrl S
  • 【吴恩达机器学习笔记】代价函数(一)

    目录 前言 一 单变量线性回归问题 二 建模误差 三 代价函数 平方和误差函数 平均平方和误差 代价函数 四 直观理解代价函数一 五 直观理解代价函数二 三维图像 等高线图 总结 前言 本栏目主要记录吴恩达老师的 机器学习 课程的学习笔记
  • node+axios实现服务端文件上传

    最近调研企业wx集成H5应用 其中有一个发送图文消息 需要上传图片到临时素材库 之前做过文件上传到阿里云 七牛云都是服务端提供封装好的文件上传接口 在客户端使用ajax的方式上传 所以就来踩踩坑 使用node axios实现服务端文件上传
  • Unity3D+Vuforia实现AR效果的案例

    实验步骤 1 打开Unity3D 新建一个项目 下载链接 参考我另一篇文章 Unity3D Vuforia配置 2 导入 import Vuforia包 我这个版本自带Vuforia 如果导入下载的会有冲突 出错 直接按照下图导入 Game
  • QT随机生成验证码 四位数字并 禁止编辑的方法

    随机生成数字 int Widget generateRandomNumber qsrand QTime 0 0 0 secsTo QTime currentTime for int i 0 i lt 4 i int test qrand r
  • 转 C#中的override

    https zhidao baidu com question 446422940 html 要扩展或修改继承的方法 属性 索引器或事件的抽象实现或虚实现 必须使用 override 修饰符 override 方法提供从基类继承的成员的新实
  • Qt跨线程信号和槽的连接

    Qt支持三种类型的信号 槽连接 1 直接连接 当signal发射时 slot立即调用 此slot在发射signal的那个线程中被执行 不一定是接收对象生存的那个线程 2 队列连接 当控制权回到对象属于的那个线程的事件循环时 slot被调用
  • 压测以及python的自省

    经过两个季度的开发 数据库收敛的项目一期终于到了最后阶段 这周完成最后的功能测试之后即将部署到测试环境进行压测 并进行运维文档的完善 下午小组会上 heng哥分享了python类和自省机制的相关内容 他用了苏格拉底那句经典的 The une
  • Java多线程,Android多线程

    目录 一 线程的概念 二 线程创建的方式及特点 三 线程创建方式 1 继承Thread类 2 实现Runnable接口 3 实现Callable接口 我觉得了解即可 4 AsyncTask异步任务 被弃用 5 AsyncTask替代方案 四
  • 最全的计算机网络思维导图

    计算机网络思维导图 概述 应用层 传输层 网络层 链路层 物理层 概述 应用层 传输层 网络层 链路层 物理层
  • ASP.NET 2.0数据操作(一)

    创建数据访问层的过程 第一步 在网站中添加新项 数据集 Visual Studio会问我们是否将DataSet添加到App Code文件夹中 选择 Yes 第二步 向数据集中添加TableAdapter控件 完成上步后 Visual Stu
  • PPT添加页码

    点击 插入 点击 幻灯片编号 点击 幻灯片编号 点击 全部应用 右下角出现编号
  • ue测试php,用户体验测试(UE测试)

    GO语言练习 channel 缓冲机制 1 代码 2 运行 3 解析 1 代码 buffer go package main import fmt time func readThre Web调试工具 Fiddler介绍 Fiddler 教

随机推荐

  • JDBC连接数据库案例

    基于 MySQL 8 0 3 JDK 1 8 数据库的创建 创建学生数据库 CREATE DATABASE Student 创建学生表 CREATE TABLE STU ID INT PRIMARY KEY AUTO INCREMENT N
  • 014.Solidity入门——01数据类型

    数据类型是编写智能合约的基础 Solidity支持多种数据类型 包括基本数据类型 数组 结构体 枚举 映射等 基本数据类型包括 bool 布尔型 true或false int uint 整型 可以表示正负整数 int 或非负整数 uint
  • Oracle获取字符串长度

    Oracle中常用的字符串长度获取方法 有两个 lengthb string 和length string b是byte字节的意思 其中 lengthb string 计算string所占的字节长度 返回字符串的长度 单位是字节 lengt
  • matlab求解全局最优(初步介绍)

    这里可以看到全局优化的一些经典算法举例 matlab两个工具箱的比较 最左上角是求解器的选项 可以在此选择不同的算法求解 不同的求解器需要输入的参数也各不相同
  • Udacity Deep Learning课程作业(六)

    来到课程最后一次小作业 训练完word2vec模型后 作业六基于Text8 zip语料训练一个LSTM模型 用perplexity评价训练得到语言模型的质量 越低越好 LSTM Problem 1 num nodes 64 graph tf
  • 【Untiy2D独立/合作开发】特别篇:如何实现快速丢掉物品

    学习目标 一天两更累的一批 那么今天就来实现如何快速丢掉物品而不是只能拖拽物品这样能快速处理背包物品 学习内容 首先先去EventHandler上新建一个事件 public static event Action DropItemSelec
  • 【unity3D】如何修改相机的默认视角

    未来的游戏开发程序媛 现在的努力学习菜鸡 本专栏是我关于游戏开发的学习笔记 本篇是unity的如何修改相机的默认视角 如何修改相机的默认视角 Game窗口运行的话视角是这样的 此时Scene窗口的视角是这样的 可以观察到人物变化 但是我现在
  • html select 添加js,封装html的select标签的js操作实例

    复制代码 代码如下 function BindSelect id dataList fieldtext fieldValue 绑定某一个数据源 fieldtext为需要绑定的文本字段 fieldValue为需要绑定的value字段 var
  • 【docx4j】docx4j操作docx,实现替换内容、转换pdf、html等操作

    主要是想要用此功插件操作docx 主要的操作就是操作段落等信息 另外 也想实现替换docx的内容 实现根据模板动态生成内容的效果 也想用此插件实现docx转换pdf word的格式其实可以用xml来表现 docx4j也应该是基于xml来操作
  • Linux下的Jenkins安装教程

    当前环境 CentOS 7 8 Java 11 注意当前jenkins支持的Java版本最低为Java11 FinalShell 3 9 操作环境 安装Jenkins PS 不建议使用Docker安装Jenkins 因为使用Jenkins的
  • 设计模式学习(理论+实践)

    设计模式学习 理论 实践 例举一些Demo来帮助我们理解设计模式 https gitee com lipeng gzmu design pattern demo tree master
  • Ubuntu20.04下安装显卡驱动

    环境配置 系统 Ubuntu 20 04 CPU i5 GPU Geforce 960M Ubuntu安装显卡驱动 1 查看当前显卡安装情况 使用glxinfo查看 https dri freedesktop org wiki glxinf
  • 从多臂老虎机开始学习强化学习中的探索与利用

    从多臂老虎机开始学习强化学习中的探索与利用 quad 目录 从多臂老虎机开始学习强化学习中的探索与利用 多臂老虎机问题 形式化描述 估计期望奖励 代码实现 策略中的探索与利用 epsilo
  • 在Ubuntu 16.04 LTS服务器上安装FreeRADIUS和Daloradius的方法

    FreeRADIUS 为AAA Radius Linux下开源解决方案 DaloRadius为图形化web管理工具 freeradius一般用来进行账户认证管理 记账管理 常见的电信运营商的宽带账户 上网账户管理 记账 都是使用的radiu
  • Gradle最详细教程,关于Gradle,学习这些就够了.......

    目录 Gradle的简介 Groovy语言的学习 Groovy环境变量的配置 第一个Groovy项目 变量的定义 字符串的定义 字符串的常用方法 流程控制 switch for 闭包 基本技能 闭包的使用场景 闭包中的变量 列表 定义方式
  • pytorch转onnx踩坑日记

    在深度学习模型部署时 从pytorch转换onnx的过程中 踩了一些坑 本文总结了这些踩坑记录 希望可以帮助其他人 首先 简单说明一下pytorch转onnx的意义 在pytorch训练出一个深度学习模型后 需要在TensorRT或者ope
  • flex 布局相关问题

    flex 布局 父元素无法被撑开出现滚动条 div style width 100 height 100px display flex div style width 100 height 100px background antiquew
  • 【转载】Makefile教程

    该篇文章为转载 是对原作者系列文章的总汇加上标注 支持原创 请移步陈浩大神博客 http blog csdn net haoel article details 2886 makefile很重要 什么是makefile 或许很多Winodw
  • 《财政学》哈维罗森

    读完了易纲的 货币银行学 开始读财政学 希望对于一国的经济运行有所了解 2013 8 1 这本书讲国家如何利用财政 如何收税 如何使用 如何建立福利 社会是个很复杂的东西 不是简单的好或者不好 对于某些政策 简单看完 有待重看 2013 9
  • 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 。

    编写代码 以给定值x为基准将链表分割成两部分 所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode pHead 请返回重新排列后的链表的头指针 注意 分割以后保持原来的数据顺序不变 解题思路 构造两个新的带头单向