32 lines
468 B
Go
32 lines
468 B
Go
package q148
|
|
|
|
import "slices"
|
|
|
|
type ListNode struct {
|
|
Val int
|
|
Next *ListNode
|
|
}
|
|
|
|
func sortList(head *ListNode) *ListNode {
|
|
if head == nil {
|
|
return nil
|
|
}
|
|
|
|
arr := []*ListNode{}
|
|
for head != nil {
|
|
arr = append(arr, head)
|
|
head = head.Next
|
|
}
|
|
|
|
slices.SortFunc(arr, func(a, b *ListNode) int { return a.Val - b.Val })
|
|
for i := range arr {
|
|
if i == len(arr)-1 {
|
|
arr[i].Next = nil
|
|
} else {
|
|
arr[i].Next = arr[i+1]
|
|
}
|
|
}
|
|
return arr[0]
|
|
}
|
|
|
|
var _ = sortList
|