leetcode 21. Merge Two Sorted Lists

題目: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.

思路:鏈表合併。1判空,2.找到頭節點head,r=head,3.當l1,l2都不爲空時逐個判斷並下移指針,4.判斷l1和l2是否爲空,並單獨處理



# Definition for singly-linked list.
class ListNode(object):
    def __init__(self, x):
        self.val = x
        self.next = None


class Solution(object):
    def mergeTwoLists(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        
        if l1==None and l2==None:return None
        if l1!=None and l2==None:return l1
        if l2!=None and l1==None:return l2
        if l1.val<=l2.val:
            head = ListNode(l1.val)
            head = l1
            l1=l1.next
        else:
            head = ListNode(l2.val)
            head = l2
            l2=l2.next
        r = head
        while l1!=None and l2!=None:
            if l1.val<=l2.val:
                r.next = l1
                r = r.next
                l1 = l1.next
            else:
                r.next=l2
                r=r.next
                l2 = l2.next
        if l1!=None:        
            while l1!=None:
                r.next = l1
                r = r.next
                l1 = l1.next
        if l2!=None:        
            while l2!=None:
                r.next = l2
                r = r.next
                l2 = l2.next
        return head
        
        
        
        
        
        
        
        
        

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章