博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
careercup-链表 2.4
阅读量:6591 次
发布时间:2019-06-24

本文共 1365 字,大约阅读时间需要 4 分钟。

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

思路:将小于的结点还是保存在原来的链表中,将大于等于x的结点加入一个新的链表,最后将这两个链表链接起来。

 

C++实现代码:

#include
#include
using namespace std;struct ListNode{ int val; ListNode *next; ListNode(int x):val(x),next(NULL) {}};void createList(ListNode *&L){ int arr[10]= {
1,2,3,2,5,6,7,3,9,1}; int i; ListNode *p=NULL; for(i=0; i<10; i++) { ListNode *tmp=new ListNode(arr[i]); if(L==NULL) { L=tmp; p=tmp; } else { p->next=tmp; p=tmp; } }}void splitX(ListNode *L,int x){ if(L==NULL) return; ListNode *pre=L; ListNode *p=L; ListNode *L1=NULL; ListNode *q=NULL; while(p) { if(p->val
next; } else { ListNode *tmp=p; p=tmp->next; pre->next=p; tmp->next=NULL; if(L1==NULL) { L1=tmp; q=tmp; } else { q->next=tmp; q=tmp; } } } pre->next=L1;}int main(){ ListNode *head=NULL; createList(head); ListNode *p=head; while(p) { cout<
val<<" "; p=p->next; } cout<
val<<" "; p=p->next; } cout<

 

转载地址:http://uezio.baihongyu.com/

你可能感兴趣的文章
java-信息安全(八)-迪菲-赫尔曼(DH)密钥交换【不推荐,推荐Oakley】
查看>>
重写和重载
查看>>
RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-新增锁定用户与解除锁定用户的功能...
查看>>
Win7 系统管理员设置了系统策略_禁止进行此安装_怎么办
查看>>
R语言环境变量的设置 环境设置函数为options()
查看>>
ELK学习总结(3-1)elk的基本查询
查看>>
do{...}while(0)的意义和用法
查看>>
微信小程序支付简单小结与梳理
查看>>
scikit-learn:4.2.3. Text feature extraction
查看>>
android 图片特效处理之光晕效果
查看>>
vue1.0 的过滤器
查看>>
如何删除anaconda
查看>>
关于https中的算法
查看>>
Unity3D - 资源管理
查看>>
JSONArray数据转换成java List
查看>>
Linux已经全然统治了这个世界:反对开源社区愚不可及
查看>>
ASP.NET Core 使用 Hangfire 定时任务
查看>>
bzoj 3996: [TJOI2015]线性代数 [最小割]
查看>>
js:s上次预览,上传图片预览,图片上传预览
查看>>
0基础搭建Hadoop大数据处理-集群安装
查看>>