solve: 88. Merge two sorted list in Racket
This commit is contained in:
parent
2f30a4c037
commit
0af3f8403a
|
|
@ -0,0 +1,20 @@
|
||||||
|
; 88. Merge Sorted Array
|
||||||
|
;
|
||||||
|
; We consider that the function returns the sorted list
|
||||||
|
; instead of overwriting the nums1 list (as specified in the subject)
|
||||||
|
|
||||||
|
|
||||||
|
#lang racket
|
||||||
|
|
||||||
|
(define/contract (merge nums1 nums2)
|
||||||
|
(-> (listof number?) (listof number?) (listof number?))
|
||||||
|
"Merge recursively two sorted lists NUMS1 and NUMS2."
|
||||||
|
(cond
|
||||||
|
[(null? nums1) nums2]
|
||||||
|
[(null? nums2) nums1]
|
||||||
|
[(< (car nums1) (car nums2))
|
||||||
|
(cons (car nums1) (merge (if (list? nums1) (cdr nums1) '()) nums2))]
|
||||||
|
[else (cons (car nums2) (merge (if (list? nums2) (cdr nums2) '()) nums1))]))
|
||||||
|
|
||||||
|
(for/list ([item (merge '(1 2 3) '(1 3 5))])
|
||||||
|
(println item))
|
||||||
Loading…
Reference in New Issue