leetcode-86-分隔链表

103 阅读1分钟

image.png leetcode原题

解题思路

  • 将链表分成两个链表,分别为小于x的小链表和大于等于x的大链表
  • 将小链表与大链表连接即可完成解题
var partition = function(head, x) {
    if(!head||!head.next) return head
    let vnodeBig = new ListNode(-1,head)
    let vnodeSmall = new ListNode(-1,head)
    let big = vnodeBig
    let small = vnodeSmall
    while(head){
        if(head.val<x){
            small.next = head
            small = small.next
        }else{
            big.next =head
            big = big.next
        }
        head = head.next
    }
    big.next = null
    small.next = vnodeBig.next
    return vnodeSmall.next
};