博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 【 Partition List 】python 实现
阅读量:6530 次
发布时间:2019-06-24

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

题目

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.

 

代码:oj测试通过 Runtime: 53 ms

1 # Definition for singly-linked list. 2 # class ListNode: 3 #     def __init__(self, x): 4 #         self.val = x 5 #         self.next = None 6  7 class Solution: 8     # @param head, a ListNode 9     # @param x, an integer10     # @return a ListNode11     def partition(self, head, x):12         if head is None or head.next is None:13             return head14         15         h1 = ListNode(0)16         dummyh1 = h117         h2 = ListNode(0)18         dummyh2 = h219         20         p = head21         while p is not None:22             if p.val < x :23                 h1.next = p24                 h1 = h1.next25             else:26                 h2.next = p27                 h2 = h2.next28             p = p.next29         30         h1.next = dummyh2.next31         h2.next = None

思路

这道题的意思就是:把比x小的单拎出来,把大于等于x的单拎出来,再把两个Linked List首尾接起来。

技巧是设定两个虚拟表头dummyh1和dummyh2:保留住两个新表头。

另外需要设定两个迭代变量h1和h2:用于迭代变量

转载于:https://www.cnblogs.com/xbf9xbf/p/4214591.html

你可能感兴趣的文章
整理ARM微处理器的指令集
查看>>
pssh批量管理linux主机ssh的工具
查看>>
弹性返回顶部代码
查看>>
NHibernate初学者指南(20):开发中常见的错误(一)
查看>>
angularjs-过滤输入filter
查看>>
vuejs14表达式
查看>>
bootstrap-徽章-按钮
查看>>
服务器端error:[META-INF/xfire/services.xml]挀愀渀渀漀琀戀攀漀瀀攀渀攀搀
查看>>
App Extension,Today扩展
查看>>
利用Zabbix ODBC monitoring监控SQL Server
查看>>
Swift_单利
查看>>
http协议不同版本之间的对比(1.0 1.1 2.0)
查看>>
Windows Server 笔记(六):Active Directory域服务:用户(3)
查看>>
在博看文思的第一个项目——五星传奇
查看>>
session过期时iframe跳出子页面
查看>>
IIS7站点配置备份和还原
查看>>
python之set集合基本操作
查看>>
数组排序
查看>>
Linux系统搭建java开发环境
查看>>
【NetApp】模拟器root volume损坏的解决方法
查看>>