人工智能/模式识别/机器学习精华专题大数据,机器学习,人工智能机器学习和人工智能入门

21. 合并两个有序链表

2018-05-23  本文已影响0人  不爱去冒险的少年y

21. 合并两个有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 

示例:

输入:1->2->4, 1->3->4输出:1->1->2->3->4->4

# Definition for singly-linked list.

# class ListNode:

#    def __init__(self, x):

#        self.val = x

#        self.next = None

class Solution:

    def mergeTwoLists(self, l1, l2):

        """

        :type l1: ListNode

        :type l2: ListNode

        :rtype: ListNode

        """

        isFirst = True

        if l1==None:

            return l2

        if l2 == None:

            return l1

        while l2!=None:

            if isFirst:

                if l1.val >= l2.val:

                    c = ListNode(l2.val)

                    c.next = l1

                    l1 = c

                    l2 = l2.next

                n = l1

                isFirst = False

            elif l1.next==None:

                l1.next = l2

                return n

            else:

                if l1.next.val < l2.val:

                    l1 = l1.next

                else:

                    c = ListNode(l2.val)

                    c.next = l1.next

                    l1.next = c

                    l2 = l2.next

        return n

上一篇 下一篇

猜你喜欢

热点阅读