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.
Example:
Input: 1->2->4, 1->3->4 Output: 1->1->2->3->4->4
【注意事项】
1、ListNode是自定义类,实质为链表中的一个node结点
2、需要一个head指针指示结果头,一个游标指针向结果链表中添加node结点
【思路】
1、由于list1、list2本身即为有序链表,故只需要按序遍历,
对比两个链表结点大小(if l1.val<l2.val),
将“小结点”放入结果链表(cur.next=l1;l1=l1.next)
2、注意链表的实现细节
【参考代码_52ms】
class Solution:
def mergeTwoLists(self,l1,l2):
"""
:type l1:ListNode
:type l2:ListNode
:rtype:ListNode
"""
result=ListNode([])
index=result
while l1!=None and l2!=None:
if l1.val<=l2.val:
index.next=l1
index=index.next
l1=l1.next
else:
index.next=l2
index=index.next
l2=l2.next
if l1==None:
index.next=l2
else:
index.next=l1
result=result.next
return result
40ms 代码:
(较灵活地运用了python语法)
(ps,
if l1==None:
index.next=l2
else:
index.next=l1
更换为
index.next=l1 if l1 else l2
速度会明显变慢)