假设我们有两个链表l1和l2,我们必须通过交织从l1开始的两个链表的元素来返回一个链表。如果链接列表中有任何剩余节点,则应将它们追加到列表中。
因此,如果输入像l1 = [5,4,6,3,4,7] l2 = [8,6,9],那么输出将为[5,8,4,6,6,9, 3,4,7]
为了解决这个问题,我们将遵循以下步骤-
ans:= l1
当l2不为null时,执行
返回l2
如果ans的next不为null,则
除此以外,
下一个答案:= l2
从循环中出来
newnode:=一个具有l2值的新列表节点
下一个newnode:=下一个ans
下一个ans:= newnode
ans:= newnode的下一个
l2:=下一个l2
如果ans不为null,则
除此以外,
返回l1
让我们看下面的实现以更好地理解-
Source Code (Python):
class ListNode:
   def __init__(self, data, next = None):
      self.val = data
      self.next = next
def make_list(elements):
   head = ListNode(elements[0])
   for element in elements[1:]:
      ptr = head
      while ptr.next:
         ptr = ptr.next
      ptr.next = ListNode(element)
   return head
def print_list(head):
   ptr = head
   print('[', end = "")
   while ptr:
      print(ptr.val, end = ", ")
      ptr = ptr.next
print(']')
class Solution:
   def solve(self, l1, l2):
      ans = l1
      while l2:
         if ans:
            if ans.next != None:
               newnode = ListNode(l2.val, None)
               newnode.next = ans.next
               ans.next = newnode
               ans = newnode.next
               l2 = l2.next
            else:
               ans.next = l2
               break
            else:
               return l2
               return l1
ob = Solution()l1 = make_list([5,4,6,3,4,7])
l2 = make_list([8,6,9])
res = ob.solve(l1,l2)
print_list(res)[5,4,6,3,4,7],[8,6,9]
输出结果
[5, 8, 4, 6, 6, 9, 3, 4, 7, ]