js-practice/test/list/merge-k-sorted-lists.test.js
2020-05-10 16:57:42 +08:00

46 lines
1.1 KiB
JavaScript

import { merge, mergeKLists } from '../../src/list/merge-k-sorted-lists'
import { arrToList } from './ListNode'
test('数组转链表', () => {
expect(arrToList([1, 2, 3])).toEqual({ next: { next: { next: null, val: 3 }, val: 2 }, val: 1 })
})
test('合并俩链表', () => {
const source1 = arrToList([1, 4, 5])
const source2 = arrToList([1, 3, 4])
const out = [1, 1, 3, 4, 4, 5]
expect(merge(source1, source2)).toEqual(arrToList(out))
})
test('合并K个排序链表 - 1', () => {
const source = [
arrToList([1, 4, 5]),
arrToList([1, 3, 4]),
arrToList([2, 6])
]
const out = [1, 1, 2, 3, 4, 4, 5, 6]
expect(mergeKLists(source)).toEqual(arrToList(out))
})
test('合并K个排序链表 - 2', () => {
const source = [
arrToList([2, 4, null]),
arrToList([null]),
arrToList([-1, null])
]
const out = [-1, 2, 4, null]
expect(mergeKLists(source)).toEqual(arrToList(out))
})
test('合并K个排序链表 - 3', () => {
const source = [
arrToList([2, 6, null]),
arrToList([5, null]),
arrToList([7, null])
]
const out = [2, 5, 6, 7, null]
expect(mergeKLists(source)).toEqual(arrToList(out))
})