Python recursive solution with only 11 lines, easy to understand


  • 1
    S
    def mergeTwoLists(self, l1, l2):
    	if not l1:
    		return l2
    	elif not l2:
    		return l1
    	else:
    		if l1.val <= l2.val:
    			l1.next = self.mergeTwoLists(l1.next, l2)
    			return l1
    		else:
    			l2.next = self.mergeTwoLists(l1, l2.next)
    			return l2

  • 1
    C

    Good solution, while the first a fewer lines are a little verbose, here is a concise version of your idea:

    def mergeTwoLists(self, l1, l2):
        if None in (l1, l2):
            return l1 or l2
        if l1.val < l2.val:
            l1.next = self.mergeTwoLists(l1.next, l2)
            return l1
        else:
            l2.next = self.mergeTwoLists(l1, l2.next)
            return l2

Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.