Partition List
2015-06-19 09:21
253 查看
题目:
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
return
解题思路:
对于此题一开始无从下手,主要是因为根本无法理解题目的意思。经查阅资料后,才得知。(但仍然感觉很牵强)
题意:给定一个单链表和一个x,把链表中小于x的放到前面,大于等于x的放到后面,每部分元素的原始相对位置不变。
思路:其实很简单,遍历一遍链表,把小于x的都挂到head1后,把大于等于x的都放到head2后,最后再把大于等于的链表挂到小于链表的后面就可以了。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# @param {ListNode} head
# @param {integer} x
# @return {ListNode}
def partition(self, head, x):
sentry1,sentry2 = ListNode(-1),ListNode(-1)
p1,p2 = sentry1,sentry2
tmp = head
while tmp:
if tmp.val<x:
p3 = ListNode(tmp.val)
p1.next =p3
p1 = p1.next
elif tmp.val>=x:
p3 = ListNode(tmp.val)
p2.next = p3
p2 = p2.next
tmp = tmp.next
p1.next = sentry2.next
return sentry1.next
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->2and x = 3,
return
1->2->2->4->3->5.
解题思路:
对于此题一开始无从下手,主要是因为根本无法理解题目的意思。经查阅资料后,才得知。(但仍然感觉很牵强)
题意:给定一个单链表和一个x,把链表中小于x的放到前面,大于等于x的放到后面,每部分元素的原始相对位置不变。
思路:其实很简单,遍历一遍链表,把小于x的都挂到head1后,把大于等于x的都放到head2后,最后再把大于等于的链表挂到小于链表的后面就可以了。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# @param {ListNode} head
# @param {integer} x
# @return {ListNode}
def partition(self, head, x):
sentry1,sentry2 = ListNode(-1),ListNode(-1)
p1,p2 = sentry1,sentry2
tmp = head
while tmp:
if tmp.val<x:
p3 = ListNode(tmp.val)
p1.next =p3
p1 = p1.next
elif tmp.val>=x:
p3 = ListNode(tmp.val)
p2.next = p3
p2 = p2.next
tmp = tmp.next
p1.next = sentry2.next
return sentry1.next
相关文章推荐
- AudioServicesPlaySystemSound音频服务—IOS开发
- Super BOM应用步骤总结
- spring mvc 采用 jsr303 bean validation 校验框架
- sql server链接服务器增加mysql
- MySQL数据库在实际应用一些方面的介绍
- android自动登录
- C#如何获取本地IP地址(仅限于单网卡)
- 工厂方法模式与抽象工厂模式
- Error inflating class and android.support.v7.widget.CardView
- 《Storm入门》中文版
- 基于BRDF的光照模型
- 修改MS SQL忽略大小写
- 详解Python中的日志模块logging
- R语言-数据格式转换
- php邮件发送
- android的Dialog全屏、activity大小的设置详解
- AVAudioPlayer音频播放器—IOS开发
- Rotate Array
- [转载] linux cgroup
- 修改MS SQL忽略大小写 分类: SQL Server 数据库 2015-06-19 09:18 33人阅读 评论(0) 收藏