luoheng
10/11/2019 - 2:32 PM

mergeTwoLists

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
    head := &ListNode{}
    p := head
    for l1 != nil && l2 != nil {
        if l1.Val > l2.Val {
            p.Next = l2
            p, l2 = p.Next, l2.Next
        } else {
            p.Next = l1
            p, l1 = p.Next, l1.Next
        }
    }
    if l1 != nil {
        p.Next = l1
    }
    if l2 != nil {
        p.Next = l2
    }
    return head.Next
}