小黑leetcode之旅:86. 分隔链表
小黑做法:硬做
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:def partition(self, head: Optional[ListNode], x: int) -> Optional[ListNode]:# 添加辅助结点head = ListNode(next = head)# 前指针pre_linkpre_link = head# 后指针linklink = head.next# 辅助数组temp_arr = []# 两个指针不停地移动while link:# 出现大于等于x的数字时停止if link.val >= x:breaklink = link.nextpre_link = pre_link.next# 前指针a_link指向第一个大于等于x的数a_link= pre_link.next# 如果没有大于等于x的数字则直接返回if not link:return head.next# 后指针b_linkb_link = link.nextarr = []while b_link:# 小于x的数字放入arr,并在链表中删除if b_link.val < x:arr.append(b_link)a_link.next = b_link.nextelse:a_link = a_link.nextb_link = b_link.next# arr中元素插入到pre_link后link_arr = pre_linkfor node in arr:link_arr.next = nodelink_arr = link_arr.nextlink_arr.next = linkreturn head.next
模拟法
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:def partition(self, head: Optional[ListNode], x: int) -> Optional[ListNode]:# 小结点small_head = ListNode()small = small_head# 大结点big_head = ListNode()big = big_headwhile head:if head.val x:small.next = headsmall = small.nextelse:big.next = headbig = big.nexthead = head.nextsmall.next = big_head.nextbig.next = Nonereturn small_head.next
小黑生活
下午要去朝阳公园跑步,喝喜茶!!!
小黑leetcode之旅:86. 分隔链表相关推荐
- 【LeetCode】86. 分隔链表
86. 分隔链表 题解 这题不难,事先准备两个链表,遍历题目给的链表,将小于x和大于等于x的两类数据分别放到准备好的链表中,然后两个链表拼接即可: 注意点: 链表在创建增加的时候,游走的那个指针在当前 ...
- 86. 分隔链表 golang
86. 分隔链表 只把小的放在一边,大于的不用放到右边(这个题的题目比较晦涩,很多人说看不懂题,我也没看懂,解法也没什么特殊,半天没读懂题,看了别人的解法) 给定一个链表和一个特定值 x,对链表进行分 ...
- LeetCode 86. 分隔链表 中等难度
题目 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前.你应当保留两个分区中每个节点的初始相对位置. 示例: 输入: head = 1->4- ...
- 23. Leetcode 86. 分隔链表 (链表-基础操作类-分隔链表)
给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前.你应当 保留 两个分区中每个节点的初始相对位置.示例 1:输入: ...
- Leetcode 86. 分隔链表
给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前. 你应当保留两个分区中每个节点的初始相对位置. 示例: 输入: head = 1->4-&g ...
- leetcode 86. 分隔链表(链表)
给你一个链表和一个特定值 x ,请你对链表进行分隔,使得所有小于 x 的节点都出现在大于或等于 x 的节点之前. 你应当保留两个分区中每个节点的初始相对位置. 示例: 输入:head = 1-> ...
- 小黑迷茫抑郁中的leetcode之旅:19. 删除链表的倒数第 N 个结点
小黑代码 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): ...
- 86. 分隔链表(JS实现)
1 题目 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前. 你应当保留两个分区中每个节点的初始相对位置. 示例: 输入: head = 1-> ...
- LeetCode上最难的链表算法题,没有之一
作者 | 程序员小吴 转载自五分钟学算法(ID: CXYxiaowu) 该题在 LeetCode 官网上有关于链表的问题中标注为最难的一道题目:难度为 Hard ,通过率在链表 Hard 级别目前最低 ...
最新文章
- 《系统集成项目管理工程师》必背100个知识点-77配置审计的功能
- 看完这些福利才知道,为什么说双12一定要出去浪
- [转载] Python3.X 线程中信号量的使用方法示例
- 12.混淆——数字音频采样,混淆,反混淆,脉冲序列_2
- 计算机学院毕业典礼口号,毕业典礼口号
- webbrowser控件 加载为空白_深入学习SAP UI5框架代码系列之一:UI5 Module的懒加载机制...
- centos 关闭命令行警报声
- Google 中国招聘啦
- 自己动手一步步安装Linux系统
- 常见花材的固定的方法有哪些_固定无梁拱形屋顶的方法都有哪些呢?
- 对select标签中的option默认选中后端的数据
- RAID磁盘阵列与磁盘阵列卡
- word中脚注和尾注的处理
- Mathtype安装教程(mathpage.wll文件未找到)
- .net 2.0安装包打不开_Android——bilibili缓存视频合并教程[2.0]
- RVT贴片铝电解电容规格
- virtualBox提高性能方法
- Python生成器的throw和close方法
- 【实用小工具】如何用Python语音合成,以及文字转语音~
- 应用实战|微信小程序开发示例之在线商城