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

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

题目:86. 分隔链表

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

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

示例:

输入:head = 1->4->3->2->5->2, x = 3

输出:1->2->2->4->3->5

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/partition-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解

构造两个指针分别连接小于x的节点和大于等于x的节点,最后再串起来。

代码

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {
public: ListNode* partition(ListNode* head, int x) {
ListNode* big = NULL; ListNode* bigHead = NULL; ListNode* little = NULL; ListNode* littleHead = NULL; while(head) {
if(head->val < x) {
if(!little) {
little = head; littleHead = head; } else {
little->next = head; little = little->next; } } else {
if(!big) {
big = head; bigHead = head; } else {
big->next = head; big = big->next; } } head = head->next; } if (big) {
big->next = NULL; } if(little) {
little->next = bigHead; return littleHead; } return bigHead; }};
你可能感兴趣的文章
Ubuntu安装指定版本的docker
查看>>
MySQL show processlist过滤
查看>>
Python日志logging的levelname格式化参数1.1s小记
查看>>
ubuntu虚拟机VMware桥接模式无法自动化获取IP的解决方法
查看>>
Python debug 报错:SystemError: unknown opcode
查看>>
Python将树结构转换成字典形式的多级菜单结构,写入json文件
查看>>
关闭linux防火墙让windows宿主机访问ubuntu虚拟机web服务以及docker
查看>>
pycharm 找不到同目录文件,但是终端中正常的小记
查看>>
安装了grpc但是无法导入:ImportError: No module named 'grpc'
查看>>
Python中logging模块的基本用法
查看>>
Python查看第三方库、包的所有可用版本,历史版本
查看>>
一键将Python2代码转成Python3小记,
查看>>
Python要求O(n)复杂度求无序列表中第K的大元素
查看>>
Python 各种进制互相转换的函数
查看>>
python的单例理解、__new__、新式类object以及python2和python3下__new__的区别。
查看>>
Python动态规划以及编辑距离——莱文斯坦距离小记
查看>>
pycharm控制台报错:xmlrpc.client.Fault: Fault 0: 'java.lang.NullPointerException
查看>>
Python打印二叉树的左视图、右视图
查看>>
OpenStack Mitaka Horizon 主题开发
查看>>
OpenStack Mitaka keystone 分页(pagination)实现
查看>>