【LeetCode】86.分割链表

1. 题目

2. 分析

这题没有太大难度,主要是熟悉代码。

3. 代码

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]:
        lower_head = None
        lower_head_bak = None
        upper_head = None
        upper_head_bak = None
        
        if head is None:
            return None
        while(head):
            tmp = head.next
            if head.val < x:
                if lower_head:
                    lower_head.next = head
                else:
                    lower_head_bak = head
                lower_head = head # 更新结果
                lower_head.next = None
            else:
                if upper_head is None:
                    upper_head_bak = head
                else:
                    upper_head.next = head
                upper_head = head
                upper_head.next = None
            head = tmp
        if lower_head :
            lower_head.next = upper_head_bak
            return lower_head_bak
        elif lower_head is None and upper_head_bak:
            return upper_head_bak
相关推荐
苏言の狗13 分钟前
小R的并集大小期望计算 | 蛮力
数据结构·算法
BineHello19 分钟前
MPC用优化求解器 - 解决无人机轨迹跟踪
算法·矩阵·自动驾驶·动态规划·无人机
橘颂TA20 分钟前
每日一练之链表的回文结构
数据结构·链表
誓约酱21 分钟前
(每日一题) 力扣 14 最长公共前缀
算法·leetcode·职场和发展
冠位观测者1 小时前
【Leetcode 每日一题 - 补卡】2070. 每一个查询的最大美丽值
数据结构·算法·leetcode
誓约酱1 小时前
(每日一题) 力扣 860 柠檬水找零
linux·c语言·c++·算法·leetcode·职场和发展
地平线开发者1 小时前
手把手基于 MINI 数据集带你做一次板端精度评估
算法·自动驾驶
詹天佐1 小时前
ICCE 数字车钥匙介绍
人工智能·算法
ak啊1 小时前
记忆化(Memoization)
算法
moonless02222 小时前
【Python】你还不了解数据结构与算法?
数据结构·算法·编程语言