给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。
你不需要 保留 每个分区中各节点的初始相对位置。
const dummyLT = new ListNode(-1, null)
const dummyMT = new ListNode(-1, null)
let cur = head
let curLt = dummyLT
let curMt = dummyMT
while(cur) {
let next = cur.next
cur.next = null
if (cur.val < x) {
// 小于x的值放入dummyLT链表中
curLt = curLt.next = cur
} else {
// 大于x的值放入dummyMT链表中
curMt = curMt.next = cur
}
cur = next
}
// 拼接小大链表
curLt.next = dummyMT.next
// 返回小链表的头节点
return dummyLT.next
};