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
相关推荐
YunchengLi7 小时前
【计算机图形学中的四元数】2/2 Quaternions for Computer Graphics
人工智能·算法·机器学习
CUC-MenG7 小时前
Codeforces Round 1079 (Div. 2)A,B,C,D,E1,E2,F个人题解
c语言·开发语言·数学·算法
666HZ6667 小时前
数据结构4.0 串
c语言·数据结构·算法
weixin_421585018 小时前
常微分方程
算法
文艺倾年8 小时前
【免训练&测试时扩展】通过任务算术转移思维链能力
人工智能·分布式·算法
curry____3038 小时前
dfs全排列和全组合问题
算法·深度优先
想做功的洛伦兹力19 小时前
2026/2/12日打卡
开发语言·c++·算法
大模型玩家七七9 小时前
技术抉择:微调还是 RAG?——以春节祝福生成为例
android·java·大数据·开发语言·人工智能·算法·安全
你撅嘴真丑9 小时前
蛇形填充数组 与 查找最接近的元素
数据结构·c++·算法
JXL18609 小时前
Dynamic programming
算法