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

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/partition-list

例:

输入:head = [1,4,3,2,5,2], x = 3
输出:[1,2,2,4,3,5]

解析:

使用双链表,一个链表存放大于等于target的值,另一个存放小于target的值,然后首尾相即可。

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution(object):def partition(self, head, x):""":type head: ListNode:type x: int:rtype: ListNode"""p, q = ListNode(), ListNode()  # 初始化两个空节点p.next = head  # p指向headhead = p  # 保留head,第一个链表的头结点,用于存放小于target的值head2 = q  # 第二个链表的头结点,用于存放大于等于target的值while p.next:  # 循环条件if p.next.val < x:p = p.next  # 小于,指针直接后移即可else:  # 大于等于,跳过,并放入第二个链表里面q.next = p.nextp.next = p.next.nextq = q.nextq.next = Nonep.next = head2.next  # 首尾相连return head.next  # 返回头结点的next节点即可

分隔链表Python解法相关推荐

  1. 二叉树展开为链表Python解法

    给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null . 展开后的单链表 ...

  2. 旋转链表Python解法

    给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置. 例: 输入:head = [1,2,3,4,5], k = 2 输出:[4,5,1,2,3] 解析: 将首尾相连,然后 ...

  3. K 个一组翻转链表Python解法

    给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 进阶: 你可以设 ...

  4. LeetCode 142. Linked List Cycle II--单向链表成环的起点--C++,Python解法

    题目地址:Linked List Cycle II - LeetCode Given a linked list, return the node where the cycle begins. If ...

  5. python链表翻转_反转链表(两种Python解法)

    题目: 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你 ...

  6. LeetCode 148. Sort List--面试算法题--C++,Python解法

    LeetCode 148. Sort List–面试算法题–C++,Python解法 LeetCode题解专栏:LeetCode题解 LeetCode 所有题目总结:LeetCode 所有题目总结 大 ...

  7. LeetCode 369. Plus One Linked List--链表--C++,Python解法

    题目地址:Plus One Linked List - LeetCode Given a non-negative integer represented as non-empty a singly ...

  8. LeetCode 445. Add Two Numbers II--面试算法题--C++,Python解法

    题目地址:Add Two Numbers II - LeetCode You are given two non-empty linked lists representing two non-neg ...

  9. LeetCode 2. Add Two Numbers--C++,Python解法--面试算法题

    题目地址:Add Two Numbers - LeetCode You are given two non-empty linked lists representing two non-negati ...

最新文章

  1. MAC软件下载比较好的三个第三方网站
  2. 腾讯帝国的野蛮生长史
  3. 2021春季学期-创新设计与实践-Lesson3
  4. Mercurial(Hg)基本操作
  5. Python中过滤序列内置函数filter()的详解(常用)
  6. 《Linux 设备驱动开发详解(第2版)》——1.4 Linux设备驱动
  7. 在EXCEL中使用SQL语言对工作表进行操作
  8. 课堂破冰游戏“猜猜他是谁”
  9. arm中用c语言编写的程序 出现数组的最后一行调用不到,C语言函数指针数组在ARM中断中的应用...
  10. 苹果春季发布会确认:AirPods2、Apple TV服务等来袭,3月25日见
  11. 基于WTN6040F-8S语音芯片ic在助眠耳机产品的设计解决方案
  12. 入职百度第二周,我知道了这些
  13. g suite_什么是G Suite?
  14. uni-app 微信小程序 引入iconfont
  15. java阿拉伯转大写_java 中大写数字与阿拉伯数之间的相互转换 | 学步园
  16. verilog状态机练习
  17. 孩子学习机器人编程究竟有没有用?
  18. 运行结果是随机数——我帮你解决
  19. 为什么说施工是最蛋疼的工程行业
  20. linux开启网卡fcoe功能,在Redhat上配置FCoE的方法

热门文章

  1. SAP UI5 的初始化过程
  2. SAP Spartacus 服务器端渲染的三种可能情形
  3. 给某个 SAP S/4HANA 用户分配 Business Role
  4. 如何构建和部署 SAP Commerce Cloud 项目
  5. 安装 SAP Spartacus 3.0 并使用B2B功能
  6. SAP Spartacus layout设计原理
  7. 电脑重装系统之后git pull报错 Permission denied (publickey)
  8. 基于CDS view生成的OData服务的metadata是如何生成的
  9. Why close date in S2 view is not displayed correctly after clicking it
  10. 昨日万圣节ABAP怪兽级代码谜团,公布答案啦