程序插入Python中两个链接列表中的列表元素

假设我们有两个链表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, ]

    以上是 程序插入Python中两个链接列表中的列表元素 的全部内容, 来源链接: utcz.com/z/358078.html

    回到顶部