/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func add(l, v *ListNode) *ListNode { if l.Val < v.Val { if l.Next != nil { l.Next = add(l.Next, v) } else { l.Next = v } } else { v.Next = l l = v } return l}func mergeTwoLists(list1 *ListNode, list2 *ListNode) *ListNode { if list1 == nil { return list2 } if list2 == nil { return list1 } now := list2 for { x := ListNode{Val: now.Val} list1 = add(list1, &x) if now.Next == nil { break } else { now = now.Next } } return list1}