PRoblem:
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
Idea: Basic singly-linked list Operation. Use two ListNodes as pointers to point two input lists individually. Compare values of two ListNodes and then make the ListNode with smaller value move backward.
Solution:
# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Solution(object): def mergeTwoLists(self, l1, l2): """ :type l1: ListNode :type l2: ListNode :rtype: ListNode """ inode = l1 jnode = l2 if l1 == None: head = l2 return head elif l2 == None: head = l1 return head elif l1.val < l2.val: head = l1 inode = inode.next else: head = l2 jnode = jnode.next tmpnode = head while inode != None or jnode != None: if inode == None: tmpnode.next = jnode return head elif jnode == None: tmpnode.next = inode return head elif inode.val < jnode.val: tmpnode.next = inode tmpnode = tmpnode.next inode = inode.next else: tmpnode.next = jnode tmpnode = tmpnode.next jnode = jnode.next return head新闻热点
疑难解答