企业网站首页图片,wordpress如何优化速度,长沙市宁乡县建设局网站,百度云网站建设教程题目#xff1a; 给你一个链表的头节点 head 和一个特定值 x #xff0c;请你对链表进行分隔#xff0c;使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 来源#xff1a;力扣#xff08;LeetCode#xff09;… 题目 给你一个链表的头节点 head 和一个特定值 x 请你对链表进行分隔使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 来源力扣LeetCode 链接力扣LeetCode官网 - 全球极客挚爱的技术成长平台 示例 示例 1 输入head [1,4,3,2,5,2], x 3 输出[1,2,2,4,3,5] 示例 2 输入head [2,1], x 2 输出[1,2] 解法 转成列表处理。设index为0表示分界点遍历列表如果当前值num小于xinsert(index, num)index 1否则append(num)。 代码 # Definition for singly-linked list.
# class ListNode:
# def __init__(self, val0, nextNone):
# self.val val
# self.next next
class Solution:def partition(self, head: Optional[ListNode], x: int) - Optional[ListNode]:list1 []list2 []while head:list1.append(head.val)head head.nextindex 0for num in list1:if num x:list2.insert(index, num)index 1else:list2.append(num)head point ListNode()for num in list2:point.next ListNode(num)point point.nextreturn head.next