首页 > 其他分享 >1669

1669

时间:2023-01-31 20:11:58浏览次数:33  
标签:end2 ListNode struct int list1 next 1669

给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。

请你将 list1 中下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点的位置。

 

 第一遍

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */


struct ListNode* mergeInBetween(struct ListNode* list1, int a, int b, struct ListNode* list2){
struct ListNode* beginning2=list2;
struct ListNode* end2=list2;
while(end2->next)
    end2=end2->next;
struct ListNode* p=list1;
struct ListNode* linka=list1;
struct ListNode* linkb=list1;
p=list1;
while(p->next)
    {if(p->next->val==a)
        {linka=p;
        p=p->next;}
    else if(p->next->val==b)
        {linkb=p->next;
        p=p->next;}
    else
        {p=p->next;}
    }
linka->next=beginning2;
end2->next=linkb->next;
return list1;

}

 

 

 

第二遍 参考题解

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */


struct ListNode* mergeInBetween(struct ListNode* list1, int a, int b, struct ListNode* list2){
struct ListNode* end2=list2;
while(end2->next)
    end2=end2->next;
struct ListNode* preA = list1;
    for (int i = 0; i < a - 1; i++) {
        preA = preA->next;
    }
    struct ListNode* preB = preA;
    for (int i = 0; i < b - a + 2; i++) {
        preB = preB->next;
    }
preA->next=list2;
end2->next=preB;
return list1;

}

 

 

和题解的思路是一样的 把要改的结点先找到 

但是如何找 

自己做的时候忽略了第一个链表的特点 即从0开始依次递增

没有利用这个特点 要把整个链表遍历完才能找到要的结点(找到第二个之后break也试过了还是不行)

 

标签:end2,ListNode,struct,int,list1,next,1669
From: https://www.cnblogs.com/LYoungH/p/17080376.html

相关文章

  • 1669. 合并两个链表
    1669.合并两个链表題解:模拟链表操作/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode......
  • LeetCode:1669. 合并两个链表
    /***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListN......
  • NC16697 [NOIP2001]Car的旅行路线
    题目链接题目题目描述又到暑假了,住在城市A的Car想和朋友一起去城市B旅游。她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之间有一条......
  • 白嫖永久服务器1669268692661
    阿贝云服务器注册免费领取1核1g内存5m宽带10g内存的云服务器,对于个人来说完全够用了。还有免费备案和虚拟主机,免备案对于搭建个人博客就很方便,部署了小项目上去,运行流畅不......
  • SOJ1669 题解
    题意传送门给定长度为\(N\)的数组\(a\)与\(Q\)个区间,还有一个整数\(M\)。你可以将至多\(M\)个\(a_i\)个变为\(0\),求\[\sum_{i=1}^Q\max_{l_i\lej\ler......