类似归并排序的操作
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
l3 := new(ListNode)
cur := l3
for l1 != nil || l2 != nil {
node := new(ListNode)
if l1 == nil {
node.Val = l2.Val
l2 = l2.Next
cur.Next = node
cur = node
continue
}
if l2 == nil {
node.Val = l1.Val
l1 = l1.Next
cur.Next = node
cur = node
continue
}
if l1.Val < l2.Val {
node.Val = l1.Val
l1 = l1.Next
} else {
node.Val = l2.Val
l2 = l2.Next
}
cur.Next = node
cur = node
}
return l3.Next
}