Skip to content

排序链表

LeetCode-148

给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表

js
// 此题应是考察归并(脑子不够用...暂排序解决
var sortList = function(head) {
  if(head === null) return head
  let arr = []
  // 将链表放入节点
  while(head) {
    arr.push(head)
    head = head.next
  }
  arr.sort((a, b) => a.val - b.val) // 根据val升序排列
  for(let i = 0; i < arr.length; i++) {
    arr[i].next = arr[i+1] || null // 最后一个指向null;不指向null的话会出现循环引用的链表
  }
  return arr[0] // 返回头节点
}