题海拾贝:力扣 86.分隔链表

ops/2024/12/22 12:01:52/

          Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路!

91bfeb2bb1414a2ebf09cbc4f9706779.gif

我的博客:<但凡.

我的专栏:《编程之路》、《数据结构与算法之美》、《题海拾贝》

欢迎点赞,关注!

1、题目 

0eea29bef07845289fa3f3373c12e740.png

2、题解

        我们先分析一下思路。他让小于x的在前,大于x的在后,并且保持相对顺序不变,那咱们就新建两个链表,然后遍历原链表,把小于x的放一个链表,大于x的节点放一个链表,最后把两个链表穿起来就好了。

        需要注意的是,咱们得自己给节点初始化。给节点分配内存后别忘了把他的next置空。不然访问->next时后报错。还有一个需要注意的是,我们开辟地址应该是malloc(sizeof(struct ListNode))。我们开辟的空间应该是struct ListNode的大小,只不过是接受的时候用指针接受的,千万不要写成malloc(sizeof(struct ListNode*))!!!

        另外还有一些需要注意的点我标注在代码里了:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode* partition(struct ListNode* head, int x) {struct ListNode* s1=(struct ListNode*)malloc(sizeof(struct ListNode));struct ListNode* s2=(struct ListNode*)malloc(sizeof(struct ListNode));//开辟地址//注意我们应该用指针接受动态开辟的地址s1->next = NULL;s2->next = NULL;struct ListNode* s11 = s1;struct ListNode* s22 = s2;while(head){if((head->val)<x){s1->next = head;s1=head;}else{s2->next=head;s2=head;}head=head->next;}s1->next=s22->next;s2->next=NULL;//注意如果不加这一条,那么这个代码可能就没有尾了,导致死循环return s11->next;
}

        好了,今天的内容就分享到这,我们下期再见! 

 

 

 


http://www.ppmy.cn/ops/144013.html

相关文章

医疗挂号的数字化转型:SSM 联合 Vue 的系统设计与实现探索

3系统分析 3.1可行性分析 通过对本医院预约挂号系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本医院预约挂号系统采用SSM框架&#xff0c;JAVA作为开发语…

Pytorch | 从零构建ResNet对CIFAR10进行分类

Pytorch | 从零构建ResNet对CIFAR10进行分类 CIFAR10数据集ResNet核心思想网络结构创新点优点应用 ResNet结构代码详解结构代码代码详解BasicBlock 类ResNet 类ResNet18、ResNet34、ResNet50、ResNet101、ResNet152函数 训练过程和测试结果代码汇总resnet.pytrain.pytest.py 前…

ios的safari下载文件 文件名乱码

当使用nginx代理文件并下载文件时&#xff0c;返回的协议头Content-Disposition中filename%E9%9B%AA%E5%B1%B1.jpg中文内容会是URL编码的形式&#xff0c;当客户端在safari浏览器下载下载文件时&#xff0c;文件名不会转换&#xff08;URL解码&#xff09;为正常的中文。 应该…

wepack的各个版本差异?

‌Webpack的版本问题主要体现在不同版本之间的配置差异和兼容性问题。‌ 不同版本之间的配置差异 ‌Webpack 3.x与4.x的区别‌&#xff1a;在Webpack 3.0之后&#xff0c;配置entry和output路径不再支持相对路径&#xff0c;只能使用__dirname拼接成的绝对路径‌。‌Webpack …

UE5 Lyra项目源码分析-角色配置说明

在上一篇里&#xff0c;我们研究了关卡的配置如何在GameMode实现加载的&#xff0c;并稍微理解了Lyra是如何实现的模块化&#xff0c;由于模块化太彻底&#xff0c;所以理解起来有些难&#xff0c;在这一篇里&#xff0c;我们看一下配置里面比较想了解的一块。就是角色是如何配…

ArrayList与LinkedList、Vector的区别

一、ArrayList 和 LinkedList区别&#xff1a; &#xff08;1&#xff09;两者都是线程不安全&#xff0c;都实现了Collection接口。 &#xff08;2&#xff09;数据结构&#xff1a;ArrayList是基于动态数组的数据结构&#xff0c;LinkedList是基于双向链表的数据结构。 &am…

一款轻量级的开源笔记服务软件

大家好&#xff0c;我是兔兔&#xff0c;一位写作爱好者&#xff0c;今天分享的内容是&#xff0c;如何搭建一个开源的、隐私优先的轻量级笔记服务应用。 不知道大家是否有这样的需求&#xff1a; 1、自己想搭建一个个人的学习笔记文档&#xff0c;既要自己看也可以单独分享给…

介绍 Html 和 Html 5 的关系与区别

HTML&#xff08;HyperText Markup Language&#xff09;是构建网页的标准标记语言&#xff0c;而 HTML5 是 HTML 的最新版本&#xff0c;包含了一些新的功能、元素、API 和属性。HTML5 相对于早期版本的 HTML&#xff08;比如 HTML4&#xff09;有许多重要的改进和变化。以下是…