题目:
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/merge-two-sorted-lists
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
个人思路:
王道数据结构做过一遍,剑指Offer看过一遍,这里又碰上了。。递归即可。
官方答案推荐:
用循环效率能更高一点。
python代码:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
if(l1 == None):
return l2
elif(l2 == None):
return l1
mergeResult = ListNode()
if(l1.val > l2.val):
mergeResult = l2
mergeResult.next = self.mergeTwoLists(l1,l2.next)
else:
mergeResult = l1
mergeResult.next = self.mergeTwoLists(l1.next,l2)
return mergeResult
反思:
见到几行代码搞定的,可以直接在l1,l2上改。