首页 > 其他分享 >LeetCode:1669. 合并两个链表

LeetCode:1669. 合并两个链表

时间:2023-01-30 10:13:33浏览次数:58  
标签:p2 p1 ListNode int nullptr next 链表 1669 LeetCode

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* mergeInBetween(ListNode* list1, int a, int b, ListNode* list2) {
        ListNode* beforePa, *afterPb, *p1, *p2, *lastP2;
        p1 = list1; // 没有头节点的单链表
        p2 = list2;
        int num = 0;
        while(p1 != nullptr)
        {
            if(num == a-1) beforePa = p1;
            if(num == b+1) 
            {
                afterPb = p1;
                break;
            }
            num++;
            p1 = p1->next;
        }
        beforePa->next = p2;
        while(p2!=nullptr)
        {
            if(p2->next == nullptr) lastP2 = p2;
            p2 = p2->next;
        }
        lastP2->next = afterPb;

        return list1;
    }
};

标签:p2,p1,ListNode,int,nullptr,next,链表,1669,LeetCode
From: https://www.cnblogs.com/zjacky/p/17074560.html

相关文章

  • leetcode简单(矩阵):[566, 766, 832, 867, 999, 1030, 1261, 1275, 1337, 1351]
    目录566.重塑矩阵766.托普利茨矩阵832.翻转图像867.转置矩阵999.可以被一步捕获的棋子数1030.距离顺序排列矩阵单元格1260.二维网格迁移1275.找出井字棋的获胜者13......
  • LeetCode-21.合并两个有序链表
    21.合并两个有序链表(MergeTwoSortedLists)将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1=[1,2,4......
  • 完整的合并有序链表(包括节点定义 生成链表 合并)
    1.定义节点publicclassListNode{intval;ListNodenext;publicListNode(){}publicListNode(intval){this.val=val;......
  • 双向链表 添加与遍历
    packagecom.pay.test;//定义节点publicclassDoubleLinkedList{//初始化头节点privateHeroNodehead=newHeroNode(0,"","");//返回节点头p......
  • LeetCode_周赛_330
    6337.统计桌面上的不同数字代码后面出现的数字都是小于n的。n=1时,答案是1。n>1时:第一天,n%(n-1)==1,n-1会被加入第二天,(n-1)%(n-2)==1,n-......
  • leetcode 15. 三数之和
    想到了先排序然后再用双指针,可是没有想过往O(n^2)的时间复杂度上怼。哈哈哈。正确解法如下:classSolution{publicList<List<Integer>>threeSum(int[]nums){......
  • 【双指针】LeetCode 16. 最接近的三数之和
    题目链接16.最接近的三数之和思路借鉴【双指针】LeetCode15.三数之和的思路,只不过把0换成target代码classSolution{publicintthreeSumClosest(int[]n......
  • 力扣-82-删除排序链表中的重复元素Ⅱ
    这个删除重复不太常规的是:它不是删除多出来的剩下一个,而是比如有三个1,1重复了,那这三个1节点都不要 ListNode*deleteDuplicates(ListNode*head){ if(!head)returnh......
  • 23/1/29-LeetCode 15: 3Sum
    LeetCode15:3Sum写过了2sum,现在再来写3sum,虽然大一下数据结构是写过的orz,应该是写过的,但是某人忘得很彻底。。。没事不迟!0.回顾一下2sum在一维array数组里找到两个数......
  • 【算法训练营day29】LeetCode491. 递增子序列 LeetCode46. 全排列 LeetCode47. 全排列
    LeetCode491.递增子序列题目链接:491.递增子序列独上高楼,望尽天涯难点在于如何在无法排序的情况下去重,核心思路是同层中同一父节点下使用过的元素就不能再使用了。cla......