package main
import . "nc_tools"
/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

/**
 * 
 * @param pHead1 ListNode类 
 * @param pHead2 ListNode类 
 * @return ListNode类
*/
func Merge( pHead1 *ListNode ,  pHead2 *ListNode ) *ListNode {
    // write code here
    cur1:= pHead1
    cur2 := pHead2
    
    resCur := &ListNode{}
    resHead := resCur
    for cur1 != nil && cur2 != nil {
        if cur1.Val < cur2.Val {
            resCur.Next = cur1
            cur1 = cur1.Next
        } else {
            resCur.Next = cur2
            cur2 = cur2.Next
        }
        resCur = resCur.Next
    }
    if cur1 != nil {
        for cur1 != nil {
            resCur.Next = cur1
            cur1 = cur1.Next
            resCur = resCur.Next
        }
    }
    if cur2 != nil {
        for cur2 != nil {
            resCur.Next = cur2
            cur2 = cur2.Next
            resCur = resCur.Next
        }
    }
    return resHead.Next
}