leetcode 每日一题 86. 分隔链表
双指针
思路:
初始化两个before,after。遍历head链表,如果head指针指向的元素小于x,将该节点插入before,否则将该节点插入after。遍历完成后,将before和after拼接。
代码:
# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def partition(self, head: ListNode, x: int) -> ListNode: before = before_head = ListNode(0) after = after_head = ListNode(0) while head: if head.val < x: before.next = head before = before.next else: after.next = head after = after.next head = head.next after.next = None before.next = after_head.next return before_head.next