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
    list1 := pHead1
    list2 := pHead2
	dummy := &ListNode{Val: 0}
	tmp := dummy
	for list1 != nil && list2 != nil {
		if list1.Val < list2.Val {
			tmp.Next = &ListNode{Val: list1.Val}
			list1 = list1.Next
		} else {
			tmp.Next = &ListNode{Val: list2.Val}
			list2 = list2.Next
		}
		tmp = tmp.Next
	}
	for list1 != nil {
		tmp.Next = &ListNode{Val: list1.Val}
		tmp = tmp.Next
		list1 = list1.Next
	}
	for list2 != nil {
		tmp.Next = &ListNode{Val: list2.Val}
		tmp = tmp.Next
		list2 = list2.Next
	}
	return dummy.Next
}