func insertionSortList(_ head: ListNode?) -> ListNode? {
if head == nil {
return nil
}
let dummyHead = ListNode(0)
dummyHead.next = head
var nextNode = head?.next
head?.next = nil
while nextNode != nil {
let tmp = nextNode
nextNode = nextNode?.next
var pre = dummyHead
while pre.next != nil && pre.next!.val < tmp!.val {
if let node = pre.next {
pre = node
} else {
break
}
}
let node = pre.next
pre.next = tmp
pre.next?.next = node
}
return dummyHead.next
}
More than 3 years have passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
List of users who liked
00