合并两个有序数组
/*
nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
*/
func mergeArr(nums1 []int, m int, nums2 []int, n int) {
p := m - 1
q := n - 1
k := len(nums1) - 1
for p >= 0 && q >= 0 {
if nums1[p] > nums2[q] {
nums1[k] = nums1[p]
p -= 1
} else {
nums1[k] = nums2[q]
q -= 1
}
k -= 1
}
for q >= 0 {
nums1[k] = nums2[q]
q -= 1
k -= 1
}
}
合并两个有序链表
type Node struct {
data interface{}
next *Node
}
func mergeList(l1 *Node, l2 *Node) *Node {
if l1 == nil {
return l2
}
if l2 == nil {
return l1
}
var l3 = &Node{}
var current = l3
for l1 != nil && l2 != nil {
if l1.data.(int) <= l2.data.(int) {
current.next = l1
l1 = l1.next
} else {
current.next = l2
l2 = l2.next
}
current = current.next
}
if l1 != nil {
current.next = l2
}
if l2 != nil {
current.next = l1
}
return l3.next
}