分隔链表Python解法
给你一个链表的头节点 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解法相关推荐
- 二叉树展开为链表Python解法
给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null . 展开后的单链表 ...
- 旋转链表Python解法
给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置. 例: 输入:head = [1,2,3,4,5], k = 2 输出:[4,5,1,2,3] 解析: 将首尾相连,然后 ...
- K 个一组翻转链表Python解法
给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 进阶: 你可以设 ...
- 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 ...
- python链表翻转_反转链表(两种Python解法)
题目: 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你 ...
- LeetCode 148. Sort List--面试算法题--C++,Python解法
LeetCode 148. Sort List–面试算法题–C++,Python解法 LeetCode题解专栏:LeetCode题解 LeetCode 所有题目总结:LeetCode 所有题目总结 大 ...
- LeetCode 369. Plus One Linked List--链表--C++,Python解法
题目地址:Plus One Linked List - LeetCode Given a non-negative integer represented as non-empty a singly ...
- 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 ...
- LeetCode 2. Add Two Numbers--C++,Python解法--面试算法题
题目地址:Add Two Numbers - LeetCode You are given two non-empty linked lists representing two non-negati ...
最新文章
- MAC软件下载比较好的三个第三方网站
- 腾讯帝国的野蛮生长史
- 2021春季学期-创新设计与实践-Lesson3
- Mercurial(Hg)基本操作
- Python中过滤序列内置函数filter()的详解(常用)
- 《Linux 设备驱动开发详解(第2版)》——1.4 Linux设备驱动
- 在EXCEL中使用SQL语言对工作表进行操作
- 课堂破冰游戏“猜猜他是谁”
- arm中用c语言编写的程序 出现数组的最后一行调用不到,C语言函数指针数组在ARM中断中的应用...
- 苹果春季发布会确认:AirPods2、Apple TV服务等来袭,3月25日见
- 基于WTN6040F-8S语音芯片ic在助眠耳机产品的设计解决方案
- 入职百度第二周,我知道了这些
- g suite_什么是G Suite?
- uni-app 微信小程序 引入iconfont
- java阿拉伯转大写_java 中大写数字与阿拉伯数之间的相互转换 | 学步园
- verilog状态机练习
- 孩子学习机器人编程究竟有没有用?
- 运行结果是随机数——我帮你解决
- 为什么说施工是最蛋疼的工程行业
- linux开启网卡fcoe功能,在Redhat上配置FCoE的方法
热门文章
- SAP UI5 的初始化过程
- SAP Spartacus 服务器端渲染的三种可能情形
- 给某个 SAP S/4HANA 用户分配 Business Role
- 如何构建和部署 SAP Commerce Cloud 项目
- 安装 SAP Spartacus 3.0 并使用B2B功能
- SAP Spartacus layout设计原理
- 电脑重装系统之后git pull报错 Permission denied (publickey)
- 基于CDS view生成的OData服务的metadata是如何生成的
- Why close date in S2 view is not displayed correctly after clicking it
- 昨日万圣节ABAP怪兽级代码谜团,公布答案啦