力扣的题目:
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例 1:
输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]
思路:建立一个新链表,顺序访问链表1 和 链表2 ,并加入新链表。
注意的是:用python代码建立链表的表达方式:
prehead = ListNode(-1);
prev = prehead;
最后返回的时候 return prehead.next;才可以正确返回链表。
(一开始建立新链表出现错误,所以借鉴他人代码才会用python建立)
class Solution(object):
def mergeTwoLists(self, list1, list2):
"""
:type list1: Optional[ListNode]
:type list2: Optional[ListNode]
:rtype: Optional[ListNode]
"""
#链表的定义要会表达:
prehead = ListNode(-1);
prev = prehead;
while list1 and list2 :
if list1.val >= list2.val:
prev.next=list2;
list2=list2.next;
elif list1.val<list2.val:
prev.next=list1;
list1=list1.next;
prev=prev.next;
if list1:
prev.next=list1;
list1=list1.next;
if list2:
prev.next=list2;
list2=list2.next;
return prehead.next;