86.分隔链表

/**
 * Definition for singly-linked list.
 * class ListNode {
 *     val: number
 *     next: ListNode | null
 *     constructor(val?: number, next?: ListNode | null) {
 *         this.val = (val===undefined ? 0 : val)
 *         this.next = (next===undefined ? null : next)
 *     }
 * }
 */
 
function partition(head: ListNode | null, x: number): ListNode | null {
  let small = new ListNode(-1),
    smallP = small,
    large = new ListNode(-1),
    largeP = large
 
  while (head) {
    if (head.val < x) {
      smallP.next = {
        val: head.val,
        next: null,
      }
      smallP = smallP.next
    } else {
      largeP.next = {
        val: head.val,
        next: null,
      }
      largeP = largeP.next
    }
    head = head.next
  }
  largeP.next = null
  smallP.next = large.next
  return small.next
}

Pasted image 20230913211808

可以看出内存还有很大的优化空间