当前位置: 首页 > 知识库问答 >
问题:

Leetcode在链接列表之间合并

郑帅
2023-03-14

我试图解决的问题的措辞如下:

您将获得两个链表:大小分别为n和m的list1和list2。从ath节点到bth节点删除list1的节点,并将list2放置到位。

我将我的解决方案写成:

    def mergeInBetween(self, list1: ListNode, a: int, b: int, list2: ListNode) -> ListNode:
        count = 1
        curr = list1
        while count < a:
            curr = curr.next
            count += 1
        curr2 = curr
        while count < b:
            curr2 = curr.next
            count += 1
        curr.next = list2
        curr3 = list2
        while curr3.next:
            curr3 = curr3.next
        curr3.next = curr2
        return list1
        

我很难理解为什么它不起作用。我似乎找不到我的错误

共有1个答案

方长卿
2023-03-14

两个小错误:

  1. 更换电流2=电流。下一步,使用curr2=curr2。下一步。我相信这只是你的一个错误
  2. <代码>计数时
def mergeInBetween(self, list1: ListNode, a: int, b: int, list2: ListNode) -> ListNode:
        count = 1
        curr = list1
        while count < a:
            curr = curr.next
            count += 1
        curr2 = curr
        while count <= b + 1:
            curr2 = curr2.next
            count += 1
        curr.next = list2
        curr3 = list2
        while curr3.next:
            curr3 = curr3.next
        curr3.next = curr2
        return list1
 类似资料:
  • 我有一个关于python中链接列表的快速问题。在下面显示的解决方案代码中,当我尝试合并两个排序的链接列表时。我对包含的if和elif语句的条件感到困惑。例如,如果l1不为空,l2为空,我想将l1中的其余3个元素添加到我的新链接列表中,但代码显示l1和tail没有更新,所以它不是只添加3个元素中的一个吗? 我的另一个问题是关于返回head.next.返回会自动返回从head.next到null pt

  • 1. 找出两个链表的交点 2. 链表反转 3. 归并两个有序的链表 4. 从有序链表中删除重复节点 5. 删除链表的倒数第 n 个节点 6. 交换链表中的相邻结点 7. 链表求和 8. 回文链表 9. 分隔链表 10. 链表元素按奇偶聚集 链表是空节点,或者有一个值和一个指向下一个链表的指针,因此很多链表问题可以用递归来处理。 1. 找出两个链表的交点 160. Intersection of T

  • LeetCode上说明的问题如下: 合并k个排序链表,并将其作为一个排序列表返回。分析并描述其复杂性。 例子: 输入:[1- 我能够通过131个测试案例中的129个,但在案例130中达到了“超出时间限制”。下面是我的实现。 有人能发现瓶颈吗?对提高时间复杂度有什么建议吗? 我在没有使用的情况下遇到了超过时间限制的问题。测试用例130包含10,000个LinkedList。

  • 大家好,我正在尝试在两个双链接列表之间完全交换两个节点(值和地址也是)。只有位于相同位置的节点才能在两个节点之间交换,即位置2的节点只能由另一个LinkedList中位置2的节点交换。考虑下面的2个链接列表示例: 假设我们想交换第三个元素,即162和830。交换后,领英列表变成: 我已经尝试了下面的代码,但它不能替换前面的元素。 我怎样才能完成这项任务? elseif不交换前面的元素,例如,如果我

  • 实现 (Implementation) 该算法的实现如下 - #include <stdio.h> #include <stdlib.h> struct node { int data; struct node *next; }; struct node *even = NULL; struct node *odd = NULL; struct node *list = NULL; /