将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
执行用时 :36 ms, 在所有 Python3 提交中击败了88.46%的用户
内存消耗 :13.7 MB, 在所有 Python3 提交中击败了5.16%的用户
更改原始链表 主要利用循环实现
//非递归的方式 也成迭代法
https://blog.csdn.net/qq_42673507/article/details/91360021
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
if (l1!= None and l2!=None):
p = l1
q = l2
l = ListNode(None)
tail = l
while(p and q):
if p.val <q.val:
tail.next = p
p = p.next
else:
tail.next = q
q = q.next
tail = tail.next
if (p):
tail.next = p
if (q):
tail.next = q
return l.next
elif (l1==None and l2!=None):
return l2
else :
return l1