package q21 type ListNode struct { Val int Next *ListNode } func mergeTwoLists(list1 *ListNode, list2 *ListNode) *ListNode { root := &ListNode{} cur := root for { if list1 == nil && list2 == nil { return root.Next } if list1 == nil { cur.Next = list2 return root.Next } else if list2 == nil { cur.Next = list1 return root.Next } else if list1.Val < list2.Val { cur.Next = list1 cur = cur.Next list1 = list1.Next cur.Next = nil } else { cur.Next = list2 cur = cur.Next list2 = list2.Next cur.Next = nil } } } var _ = mergeTwoLists