0021.合并两个有序链表
方法一:遍历
时间复杂度 $O(m+n)$,空间复杂度 $O(1)$,$m$ 和 $n$ 分别表示 $list1$ 和 $list2$ 的长度。
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func mergeTwoLists(list1 *ListNode, list2 *ListNode) *ListNode {
dummy := &ListNode{}
p := dummy
for ; list1 != nil && list2 != nil; p = p.Next {
if list1.Val < list2.Val {
p.Next, list1 = list1, list1.Next
} else {
p.Next, list2 = list2, list2.Next
}
}
if list1 != nil {
p.Next = list1
} else {
p.Next = list2
}
return dummy.Next
}