2019-03-10 16:43:04 +08:00
|
|
|
import { merge, mergeKLists } from '../../src/list/merge-k-sorted-lists'
|
2020-05-10 16:57:42 +08:00
|
|
|
import { arrToList } from './ListNode'
|
2019-03-10 16:43:04 +08:00
|
|
|
|
|
|
|
test('数组转链表', () => {
|
2020-05-10 16:57:42 +08:00
|
|
|
expect(arrToList([1, 2, 3])).toEqual({ next: { next: { next: null, val: 3 }, val: 2 }, val: 1 })
|
2019-03-10 16:43:04 +08:00
|
|
|
})
|
|
|
|
|
|
|
|
test('合并俩链表', () => {
|
2020-05-10 16:57:42 +08:00
|
|
|
const source1 = arrToList([1, 4, 5])
|
2019-03-10 16:43:04 +08:00
|
|
|
|
2020-05-10 16:57:42 +08:00
|
|
|
const source2 = arrToList([1, 3, 4])
|
2019-03-10 16:43:04 +08:00
|
|
|
|
|
|
|
const out = [1, 1, 3, 4, 4, 5]
|
2020-05-10 16:57:42 +08:00
|
|
|
expect(merge(source1, source2)).toEqual(arrToList(out))
|
2019-03-10 16:43:04 +08:00
|
|
|
})
|
|
|
|
|
|
|
|
test('合并K个排序链表 - 1', () => {
|
|
|
|
const source = [
|
2020-05-10 16:57:42 +08:00
|
|
|
arrToList([1, 4, 5]),
|
|
|
|
arrToList([1, 3, 4]),
|
|
|
|
arrToList([2, 6])
|
2019-03-10 16:43:04 +08:00
|
|
|
]
|
|
|
|
const out = [1, 1, 2, 3, 4, 4, 5, 6]
|
2020-05-10 16:57:42 +08:00
|
|
|
expect(mergeKLists(source)).toEqual(arrToList(out))
|
2019-03-10 16:43:04 +08:00
|
|
|
})
|
|
|
|
|
|
|
|
test('合并K个排序链表 - 2', () => {
|
|
|
|
const source = [
|
2020-05-10 16:57:42 +08:00
|
|
|
arrToList([2, 4, null]),
|
|
|
|
arrToList([null]),
|
|
|
|
arrToList([-1, null])
|
2019-03-10 16:43:04 +08:00
|
|
|
]
|
|
|
|
const out = [-1, 2, 4, null]
|
2020-05-10 16:57:42 +08:00
|
|
|
expect(mergeKLists(source)).toEqual(arrToList(out))
|
2019-03-10 16:43:04 +08:00
|
|
|
})
|
|
|
|
|
|
|
|
test('合并K个排序链表 - 3', () => {
|
|
|
|
const source = [
|
2020-05-10 16:57:42 +08:00
|
|
|
arrToList([2, 6, null]),
|
|
|
|
arrToList([5, null]),
|
|
|
|
arrToList([7, null])
|
2019-03-10 16:43:04 +08:00
|
|
|
]
|
|
|
|
const out = [2, 5, 6, 7, null]
|
2020-05-10 16:57:42 +08:00
|
|
|
expect(mergeKLists(source)).toEqual(arrToList(out))
|
2019-03-10 16:43:04 +08:00
|
|
|
})
|