博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Partition List
阅读量:4071 次
发布时间:2019-05-25

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

Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.

You should preserve the original relative order of the nodes in each of the two partitions.

For example,
Given 1->4->3->2->5->2 and x = 3,
return 1->2->2->4->3->5.

设定两个头结点,一个用来连接大于等于x的结点,令一个用于连接小于x的结点,最后将大于的结点挂在小于x的结点的后面。

class Solution {public:	ListNode *partition(ListNode *head, int x) {		if(!head || !head->next) return head;		ListNode *big = new ListNode(1);		ListNode *small = new ListNode(-1);		ListNode *b = big;		ListNode *s = small;		ListNode *p = head;		while (head)		{			ListNode *pnext = head->next;			if(head->val >= x){				head->next = b->next;				b->next = head;				b = head;			}			else{				head->next = s->next;				s->next = head;				s = head;			}			head = pnext;		}		s->next = big->next;		head = small->next;		delete small;		delete big;		return head;	}};

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

你可能感兴趣的文章
Java NIO
查看>>
Java大数据:Hbase分布式存储入门
查看>>
Java大数据:全文搜索引擎Elasticsearch入门
查看>>
大数据学习:Hadoop入门学习书单
查看>>
大数据学习:Spark SQL入门简介
查看>>
大数据学习:Spark RDD操作入门
查看>>
大数据框架:Spark 生态实时流计算
查看>>
大数据入门:Hive和Hbase区别对比
查看>>
大数据入门:ZooKeeper工作原理
查看>>
大数据入门:Zookeeper结构体系
查看>>
大数据入门:Spark RDD基础概念
查看>>
大数据入门:SparkCore开发调优原则
查看>>
大数据入门:Java和Scala编程对比
查看>>
大数据入门:Scala函数式编程
查看>>
【数据结构周周练】002顺序表与链表
查看>>
C++报错:C4700:使用了非初始化的局部变量
查看>>
【数据结构周周练】003顺序栈与链栈
查看>>
C++类、结构体、函数、变量等命名规则详解
查看>>
C++ goto语句详解
查看>>
【数据结构周周练】008 二叉树的链式创建及测试
查看>>