博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 86. 分隔链表
阅读量:4035 次
发布时间:2019-05-24

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

题目描述

给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。

你应当 保留 两个分区中每个节点的初始相对位置。

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/partition-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
在这里插入图片描述
C++

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode() : val(0), next(nullptr) {} *     ListNode(int x) : val(x), next(nullptr) {} *     ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */class Solution {
/*类似与一次划分,那就用双指针,不用改指针指向,只改值 上边的思路不行,因为要保证之前的相对位置, 新开链表,一个链表放小于X的节点,一个链表放大于X的节点,再拼接 */public: ListNode* partition(ListNode* head, int x) {
if(!head) return head; ListNode * small_head=new ListNode(0); ListNode * p=small_head;// 存放小于x的节点 ListNode* big_head=new ListNode(0); ListNode* q=big_head; while(head){
if(head->val
next=head; p=p->next; } else{
q->next=head; q=q->next; } head=head->next; } p->next=big_head->next; q->next=nullptr; return small_head->next; }};
你可能感兴趣的文章
【leetcode】Pascal's Triangle II (python)
查看>>
java swing最简单实例(2) 往JFrame里面放一个容器或组件
查看>>
java自定义容器排序的两种方法
查看>>
如何成为编程高手
查看>>
本科生的编程水平到底有多高
查看>>
AngularJS2中最基本的文件说明
查看>>
从头开始学习jsp(2)——jsp的基本语法
查看>>
从头开始学习JSP(3)——一些配置
查看>>
html常用标签快速检索
查看>>
使用与或运算完成两个整数的相加
查看>>
备忘:java中的递归
查看>>
DIV/CSS:一个贴在左上角的标签
查看>>
通过/proc/PID/status查看进程内存占用情况
查看>>
/proc文件系统读出来的数据是最新的吗?
查看>>
Solr及Spring-Data-Solr入门学习
查看>>
Vue组件
查看>>
python_time模块
查看>>
python_configparser(解析ini)
查看>>
selenium学习资料
查看>>
python单元测试unittest学习
查看>>