class ListNode {
value: number
next: ListNode | null
constructor(value: number = 0, next: ListNode | null = null) {
this.value = value
this.next = next
}
setNext(node: ListNode) {
this.next = node
}
}
const node1 = new ListNode(1)
const node2 = new ListNode(3)
const node3 = new ListNode(5)
const node4 = new ListNode(2)
const node5 = new ListNode(4)
const node6 = new ListNode(6)
node1.setNext(node2)
node2.setNext(node3)
console.log(node1) // 1 3 5
node4.setNext(node5)
node5.setNext(node6)
console.log(node4) // 2 4 6
function mergeSorted(l1: ListNode | null, l2: ListNode | null): ListNode | null {
if (l1 === null) return l2
if (l2 === null) return l1
if (l1.value < l2.value) {
l1.next = mergeSorted(l1.next, l2)
return l1
} else {
l2.next = mergeSorted(l1, l2.next)
return l2
}
}
console.log(mergeSorted(node1, node4)) // 1 2 3 4 5 6