原题描述:

给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。

你应该保留两部分内链表节点原有的相对顺序。

您在真实的面试中是否遇到过这个题?

Yes

样例

给定链表 1->4->3->2->5->2->null,并且 x=3

返回 1->2->2->4->3->5->null

标签

两根指针 链表

题目分析:

添加两个指针,分别指向第一个大于等于X的第一个节点和小于X的第一个节点,

实际情况就是第N个节点大于等于X时,N-1个节点必然就是小于X;

由于可能节点第一个值就大于X,此时不存在N-1个节点,所以在原链表前新增一个节点,用于初始化链表循环。

此时算法复杂度O(n)。

"""
Definition of ListNode
class ListNode(object):def __init__(self, val, next=None):self.val = valself.next = next
"""
class Solution:"""@param head: The first node of linked list.@param x: an integer@return: a ListNode"""def partition(self, head, x):# write your code hereif head is None or head.next is None: return headnode = ListNode(-999999)node.next = headhead = nodefollow  = headpre = head# 找到第一个值大于x的节点while follow is not None and follow.val < x:pre = followfollow = follow.next# 所有节点都小于x,直接返回原headif follow is None: return head.next# 遍历链表,此时pre是follow的上一个节点while follow.next is not None:if follow.next.val < x:# 删除原节点other = follow.nextfollow.next = follow.next.next# 将其值插入到pre之后tmp = pre.nextother.next = tmppre.next = otherpre = pre.nextcontinuefollow = follow.nextreturn head.next

转载于:https://www.cnblogs.com/bozhou/p/6945210.html

LintCode Python 简单级题目 96.链表划分相关推荐

  1. LintCode Python 简单级题目 41.最大子数组 - 44.最小子数组和

    题目1 最小子数组 描述: 给定一个整数数组,找到一个具有最小和的子数组.返回其最小和. 注意事项 子数组最少包含一个数字 您在真实的面试中是否遇到过这个题? Yes 样例 给出数组[1, -1, - ...

  2. LintCode Python 简单级题目 491.回文数

    原题描述: 判断一个正整数是不是回文数. 回文数的定义是,将这个数反转之后,得到的数仍然是同一个数. 注意事项 给的数一定保证是32位正整数,但是反转之后的数就未必了. 您在真实的面试中是否遇到过这个 ...

  3. 判断丑数python_LintCode Python 简单级题目 517.丑数

    题目描述: 写一个程序来检测一个整数是不是丑数. 丑数的定义是,只包含质因子 2, 3, 5 的正整数.比如 6, 8 就是丑数,但是 14 不是丑数以为他包含了质因子 7. 注意事项 可以认为 1  ...

  4. python小明爬楼梯_LintCode Python 简单级题目 111.爬楼梯 (斐波纳契数列 青蛙跳)

    **设f(n)为n阶台阶的情况下,所有不同的跳法方法的总和!** 1.如果起始跳一阶的话,剩余的n-1阶就有 f(n-1) 种跳法: 2.如果起始跳二阶的话,剩余的n-2阶就有 f(n-2) 种跳法: ...

  5. lintcode :Partition List 链表划分

    题目: 链表划分 给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前. 你应该保留两部分内链表节点原有的相对顺序. 样例 给定链表 1->4->3->2-& ...

  6. python链表划分_《Python自然语言处理》——1.2 近观Python:将文本当做词链表-阿里云开发者社区...

    本节书摘来自异步社区<Python自然语言处理>一书中的第1章,第1.2节,作者[美]Steven Bird,Ewan Klein,Edward Loper, 陈涛,张旭,崔杨,刘海平 译 ...

  7. 墙裂建议收藏,100道Python练手题目

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自丨Python知识大全 ‍来源丨大学 github.com/R ...

  8. 【总结一下|PTA】浙大版《Python 程序设计》题目集

    前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出-   自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计 ...

  9. Python简单主机批量管理工具

    Python简单主机批量管理工具 一.程序介绍 需求: 简单主机批量管理工具需求:1.主机分组2.主机信息使用配置文件3.可批量执行命令.发送文件,结果实时返回4.主机用户名密码.端口可以不同5.执行 ...

最新文章

  1. android 九宫格绘制,Android draw9patch.bat 九宫格绘制工具使用
  2. R语言data.table导入数据实战:data.table使用字符向量创建新的数据列
  3. opencv 通道分离合并
  4. 第一周——数据分析之表示 —— Numpy 数据存取与函数
  5. boost创建线程池_Java并发 之 线程池系列 (1) 让多线程不再坑爹的线程池
  6. 专转本计算机第一章试题,江苏专转本 计算机第一章自测题(含答案).doc
  7. java cpu 内存使用情况_java高cpu占用和高内存占用问题排查 (转)
  8. Hibernate(十三)迫切内连接fetch
  9. oracle的sql的substr用法,oracle中substr函数的用法(sqlserver right)
  10. 苹果损失超 1000 万美元,前员工被控收回扣、盗窃、欺诈
  11. 华为云再“祭”神器!
  12. 黑客声称攻陷并加密白俄罗斯国家铁路的服务器
  13. Atitit 高等教育 中产教育 普通教育的异同 目录 1. 顶层精英教育 1 1.1. 领导力 影响力 1 1.2. 国王规范 1 1.3. 宗教领袖 1 1.4. 决策能力 1 1.5. 国际视
  14. 江湖人物之滴滴打车张博
  15. S3C2440原理图导读
  16. Kent Beck简单设计四条规则
  17. 长期对着电脑的人保护颈椎
  18. FTP上传文件提示550错误原因分析。
  19. h5使用js的点击复制功能,兼容安卓和ios,亲测有效
  20. 跨越新数字鸿沟,懂行共识激发共振效应,成就数字化转型最短路径

热门文章

  1. 【quartz】执行一次功能
  2. 怎么可以用计算机弄出表白数字,怎么用数字表白 表白爱情数字大全
  3. java 内部类 线程_java多线程基本概述(十四)——Thread内部类的几种写法
  4. VMware下Linux虚拟机无法连接网络
  5. oracle access manager token,Laravel 自带的 API 守卫驱动 token 使用详解
  6. vue 固定div 滚动_vue移动端 导航吸顶(固定定位)页面滚动出现抖动
  7. 计算机配件制作表格,CAD教程 中望CAD表格功能创建零件明细表
  8. 矩阵迹的性质_矩阵(含逆)的迹、行列式关于矩阵自身的导数计算与Maple验证...
  9. java响应鼠标滚轮事件_一文读懂鼠标滚轮事件(wheelEvent)
  10. 下个软件包可能泄露信用卡信息,Python 包存储库 PyPI 又爆恶意代码,下载达 3 万次,你中招了吗?...