首页 > 其他分享 >day4打卡

day4打卡

时间:2024-08-19 20:38:31浏览次数:12  
标签:head ListNode cur val int day4 next 打卡

两两交换链表中的节点
一开始有错误,找不出来,但是gdb真好用

  • 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
    swapPairs(ListNode* head) {
    ListNode *dummyhead = new ListNode(0);
    dummyhead->next = head;
    ListNode *cur = dummyhead;
    while(cur->next && cur->next->next)
    {
    ListNode tmp1 = cur->next->next->next;
    ListNode tmp2 = cur->next;
    cur->next = cur->next->next;
    cur->next->next = tmp2;
    cur->next->next->next = tmp1;
    cur = cur->next->next;
    }
    return dummyhead->next;
    }
    };
    删除倒数第N个节点
    一开始没有考虑到删除最后一个节点
    /

  • 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
    removeNthFromEnd(ListNode* head, int n) {
    ListNode *dummyhead = new ListNode(0);
    dummyhead->next = head;
    ListNode *p = dummyhead;
    ListNode q = p;
    for(int i = 0; i < n; ++i)
    {
    q = q->next;
    }
    while(q->next)
    {
    p = p->next;
    q = q->next;
    }
    ListNode tmp = p->next;
    if(n == 1)
    {
    p->next =nullptr;
    }
    else
    {
    p->next = p->next->next;
    }
    delete tmp;
    return dummyhead->next;
    }
    };
    链表相交
    /

  • Definition for singly-linked list.

  • struct ListNode {

  • int val;
    
  • ListNode *next;
    
  • ListNode(int x) : val(x), next(NULL) {}
    
  • };
    */
    class Solution {
    public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
    if(headA == NULL || headB == NULL)
    {
    return NULL;
    }
    ListNode *cur = headA;
    int len1 = 0;
    int len2 = 0;
    while(cur)
    {
    len1++;
    cur = cur->next;
    }
    cur = headB;
    while(cur)
    {
    len2++;
    cur = cur->next;
    }
    ListNode *p = headA;
    ListNode *q = headB;
    if(len1 > len2)
    {
    int len = len1 -len2;
    for(int i = 0; i < len; ++i)
    {
    p = p->next;
    }
    }
    else
    {
    int len = len2 - len1;
    for(int i = 0; i < len; ++i)
    {
    q = q->next;
    }
    }
    while(p && p != q)
    {
    p = p->next;
    q = q->next;
    }
    return p;

    }
    };

环形链表
/**

  • Definition for singly-linked list.

  • struct ListNode {

  • int val;
    
  • ListNode *next;
    
  • ListNode(int x) : val(x), next(NULL) {}
    
  • };
    */
    class Solution {
    public:
    ListNode *detectCycle(ListNode *head) {
    ListNode *p = head;
    ListNode *q = head;

     while(q && q->next)
     {
         p = p->next;
         q = q->next->next;
         if(q == p)
         {
             ListNode *p1 = head;
             ListNode *q1 = q;
             while(p1 != q1)
             {
                 p1 = p1->next;
                 q1 = q1->next;
             }
             return p1;
         }
     }
     return nullptr;
    

}
};

标签:head,ListNode,cur,val,int,day4,next,打卡
From: https://www.cnblogs.com/pwangikun/p/18368057

相关文章

  • day5打卡
    有效的字母异位词classSolution{public:boolisAnagram(strings,stringt){intrecord[26]={0};for(inti=0;i<s.size();++i){record[s[i]-'a']++;}for(inti=0;i<t.size();++i){record[t[i]-'a']--;}for(inti=0;i......
  • day3打卡
    203移除链表元素/**Definitionforsingly-linkedlist.structListNode{intval;ListNode*next;ListNode():val(0),next(nullptr){}ListNode(intx):val(x),next(nullptr){}ListNode(intx,ListNode*next):val(x),next(next){}};......
  • day2打卡
    209.长度最小的数组使用滑动窗口,这个方法我是没有想到的classSolution{public:intminSubArrayLen(inttarget,vector&nums){inti=0;intmin=nums.size()+1;intj=0;intsum=0;for(;j<nums.size();++j){sum+=nums[j];while(sum>=target){if(min......
  • python随笔day4
    python实战面试题目1、列出你知道的http协议的状态码,说出表示什么意思?1xx临时响应2xx成功3xx重定向4xx请求错误5xx服务器错误我经常遇到的:200成功、404未找到网页文件、403服务器拒绝请求(禁止)、304未修改(自从上次请求后该网页就未修改过)、500服务器内部错误、503服务器......
  • day46-dynamic programming-part13-8.17
    tasksfortoday:1.647.回文子串2.516.最长回文子序列--------------------------------------------------------------------1.647.回文子串Inthispractice,itisimportanttofigureouttheessencetodecideifastringatargetone,thestring[i,j]is......
  • 【代码随想录训练营第42期 Day32打卡 - 从零开始动态规划 - LeetCode 509. 斐波那契数
    目录一、做题心得二、动规五步走三、题目与题解题目一:509.斐波那契数题目链接题解1:记忆性递归 题解2:动态规划题目二:70.爬楼梯 题目链接题解:动态规划题目三:746.使用最小花费爬楼梯题目链接题解:动态规划三、小结一、做题心得今天开始动态规划章节的第一......
  • 721java jsp SSM办公管理系统通讯录考勤打卡日程信息管理(源码+文档+PPT+开题+任务书+
    项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/10......
  • HDU-ACM 2024 Day4
    T1001超维攻坚(HDU7469)三维凸包,不会。T1002黑白边游戏(HDU7470)显然这道题没有一个固定的最优策略,所以只能\(\text{dp}\)决策。可以倒着做,设\(f_{i,S}\)表示从后往前进行了第\(i\simm\)轮,第\(i\)轮结束后(在原始意义下是开始前)黑边集合为\(S\),双方使用最优策......
  • 打卡信奥刷题(574)用Scratch图形化工具信奥B2090[普及组/提高] 年龄与疾病
    年龄与疾病题目描述某医院进行一项研究,想知道某项疾病是否与年龄有关。因此对以往的诊断记录进行整理,统计0-18、19-35、36-60、61及以上这四个年龄段的患者人数占总患者人数的比例。输入格式输入共2......
  • Day49.事务
    1.事务_事务的概念、作用和四大特性2.事务_案例进行转账,转账后进行回滚3.事务_操作完记录后,执行commit,rollback回滚无效4.事务_总结 ......