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
相关推荐
有一个好名字1 分钟前
力扣:多数元素
算法·leetcode·职场和发展
pystraf14 分钟前
P2572 [SCOI2010] 序列操作 Solution
数据结构·算法·线段树·洛谷
吗喽对你问好25 分钟前
华为5.7机考-最小代价相遇的路径规划Java题解
算法·华为
Trent198531 分钟前
影楼精修-牙齿美型修复算法解析
算法
小王努力学编程2 小时前
高并发内存池(二):项目的整体框架以及Thread_Cache的结构设计
开发语言·c++·学习·算法
补三补四2 小时前
遗传算法(GA)
人工智能·算法·机器学习·启发式算法
dot to one3 小时前
C++ 渗透 数据结构中的二叉搜索树
数据结构·c++·算法·visual studio
好易学·数据结构4 小时前
可视化图解算法36: 序列化二叉树-I(二叉树序列化与反序列化)
数据结构·算法·leetcode·二叉树·力扣·序列化·牛客
_AaRong_4 小时前
经典密码学算法实现
算法·密码学
孙同学_5 小时前
【递归,搜索与回溯算法篇】专题(一) - 递归
算法·leetcode