python-leetcode-分隔链表

86. 分隔链表 - 力扣(LeetCode)

python 复制代码
# 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]:
        # 创建两个虚拟头节点
        smaller_head = ListNode(0)
        greater_head = ListNode(0)
        
        # 初始化两个指针
        smaller = smaller_head
        greater = greater_head
        
        # 遍历链表
        while head:
            if head.val < x:
                # 将节点加入到小于 x 的链表中
                smaller.next = head
                smaller = smaller.next
            else:
                # 将节点加入到大于等于 x 的链表中
                greater.next = head
                greater = greater.next
            head = head.next
        
        # 断开大于等于 x 链表的末尾
        greater.next = None
        
        # 连接两个链表
        smaller.next = greater_head.next
        
        return smaller_head.next
相关推荐
谙弆悕博士4 分钟前
【附C源码】C语言实现散列表
c语言·开发语言·数据结构·算法·散列表·数据结构与算法
kkeeper~7 分钟前
0基础C语言积跬步之深入理解指针(5上)
c语言·开发语言·算法
a11177614 分钟前
边缘设备3DGS-SLAM算法对比实验报告
算法·3d
AI人工智能+电脑小能手16 分钟前
【大白话说Java面试题 第54题】【JVM篇】第14题:什么是可达性分析算法?
java·jvm·算法·面试
AI人工智能+电脑小能手19 分钟前
【大白话说Java面试题 第55题】【JVM篇】第15题:JVM有哪些垃圾收集算法?
java·jvm·算法·面试
Lucky_ldy35 分钟前
C语言学习: 自定义类型—联合和枚举
c语言·学习·算法
gumichef35 分钟前
栈和队列(2)
数据结构·算法·链表
进击的荆棘37 分钟前
递归、搜索与回溯——综合(下)
c++·算法·leetcode·深度优先·dfs
不知名的忻38 分钟前
归并排序(Java)
java·算法·排序算法
YUDAMENGNIUBI4 小时前
day20_逻辑回归
算法·机器学习·逻辑回归