#coding:utf-8
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param pHead1 ListNode类 
# @param pHead2 ListNode类 
# @return ListNode类
#

class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None

class Solution:
    def Merge(self , pHead1 , pHead2 ):
        # write code here
        dummpy = ListNode(-1)
        head = dummpy
        #dummpy.next = head

        while pHead1 != None or pHead2 != None:
            if pHead1 != None and pHead2 != None:
                if pHead1.val < pHead2.val:
                    head.next = pHead1
                    pHead1 = pHead1.next 
                else:
                    head.next = pHead2
                    pHead2 = pHead2.next 
            elif pHead1 != None:
                head.next = pHead1
                pHead1 = pHead1.next
            elif pHead2 != None:
                head.next = pHead2
                pHead2 = pHead2.next
            head = head.next
        
        self.print_list(dummpy.next)
                    

        return dummpy.next

    def print_list(self, node):
        ret = []
        while node != None:
            ret.append(node.val)
            node = node.next 
        print ("List is: ", ret)
        return