首页 > 其他分享 >day3打卡

day3打卡

时间:2024-08-19 20:16:33浏览次数:5  
标签:tmp head ListNode val int day3 next 打卡

203 移除链表元素
/**

  • 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
    removeElements(ListNode* head, int val) {
    ListNode *p = head;
    ListNode *q = NULL;
    if(head != nullptr)
    {
    q = p->next;
    }
    while(q != NULL)
    {
    if(q->val == val)
    {
    ListNode *tmp = q->next;
    p->next = q->next;

             q = tmp;
         }
         else
         {
             p = p->next;
             q= q->next;
         }
     }
     if(head != nullptr)
     {
         ListNode *temp = head->next;
         if(head->val == val)
         {
             head = temp;
         }
     }
     return head;
    

    }
    };
    设计链表
    class MyLinkedList {
    public:
    struct ListNode{
    int val;
    ListNode *next;
    ListNode(int val):val(val), next(nullptr){}
    };
    MyLinkedList()
    {
    _head = new ListNode(0);
    _size = 0;
    }

    int get(int index)
    {
    if(index > (_size - 1) || index < 0)
    {
    return -1;
    }
    ListNode *cur = _head->next;
    for(int i = 0; i < index; ++i)
    {
    cur = cur->next;
    }
    return cur->val;
    }

    void addAtHead(int val)
    {
    ListNode *tmp = new ListNode(val);
    if(_size == 0)
    {
    _head->next =tmp;
    }
    else
    {
    tmp->next = _head->next;
    _head->next = tmp;
    }
    _size++;
    }

    void addAtTail(int val)
    {
    ListNode *tmp = new ListNode(val);
    ListNode *cur = _head;
    for(int i = 0; i < _size; ++i)
    {
    cur = cur->next;
    }
    cur->next = tmp;
    ++_size;
    }

    void addAtIndex(int index, int val)
    {
    if(index > _size) return;
    if(index < 0) index = 0;
    ListNode *tmp = new ListNode(val);
    ListNode *p = _head;
    for(int i = 0; i < index; ++i)
    {
    p = p->next;
    }
    tmp->next = p->next;
    p->next = tmp;
    ++_size;
    }

    void deleteAtIndex(int index)
    {
    if (index >= _size || index < 0) {
    return;
    }
    ListNode *p = _head;
    for(int i = 0; i < index; ++i)
    {
    p = p->next;
    }
    ListNode *tmp = p->next;
    p->next = tmp->next;
    delete tmp;
    tmp = nullptr;
    --_size;
    }

    void printLinkedList() {
    ListNode* cur = _head;
    while (cur->next != nullptr) {
    cout << cur->next->val << " ";
    cur = cur->next;
    }
    cout << endl;
    }

private:
int _size;
ListNode *_head;
};

反转链表
使用头插法
/**

  • 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
    reverseList(ListNode* head) {
    ListNode *p = head;
    ListNode *q = nullptr;
    if(head)
    {
    q = head->next;
    }
    while(q)
    {
    ListNode *tmp = q->next;
    q->next = head;
    p->next = tmp;
    head = q;
    q = p->next;
    }
    return head;
    }
    };

标签:tmp,head,ListNode,val,int,day3,next,打卡
From: https://www.cnblogs.com/pwangikun/p/18368042

相关文章

  • 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......
  • Day34 动态规划Part2
    目录任务62.不同路径思路63.不同路径II思路343.整数拆分思路96.不同的二叉搜索树思路任务62.不同路径一个机器人位于一个mxn网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finis......
  • 代码随想录day34 || 62 不同路径,63 不同路径||,343整数拆分,96 不同搜索二叉树
    不同路径funcuniquePaths(mint,nint)int{ //dp五部曲 //dp数组以及下标的含义dp[i][j]代表从0,0走到i,j的不同路径条数 //递推公式 dp[i][j]=dp[i-1][j]+dp[i][j-1] //dp数组的初始化dp[i][0]==dp[0][j]=1 //遍历顺序 外层按照行,内层按照列遍历......
  • 【代码随想录训练营第42期 Day32打卡 - 从零开始动态规划 - LeetCode 509. 斐波那契数
    目录一、做题心得二、动规五步走三、题目与题解题目一:509.斐波那契数题目链接题解1:记忆性递归 题解2:动态规划题目二:70.爬楼梯 题目链接题解:动态规划题目三:746.使用最小花费爬楼梯题目链接题解:动态规划三、小结一、做题心得今天开始动态规划章节的第一......
  • 嵌入式day30
    管道---半双工通信方式单工       //广播---单一方向的数据通道半双工        //对讲机---同一时刻只能有一个方向全双工        //手机电话---同一时刻两个方向都可以通信无名管道只能用于亲缘关系进程间有名管道是一种特殊......
  • 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......
  • “Datawhale x魔搭 AI夏令营”-AIGC方向-Day3从零入门AI生图原理&实践
    学习内容提要从通过代码实现AI文生图逐渐进阶,教程偏重图像工作流、微调、图像优化等思路,最后会简单介绍AIGC应用方向、数字人技术(选学)Task03:进阶上分-实战优化具体Datawhale教程学习内容见链接:https://linklearner.com/activity/14/10/37框架资源网站名称链接地......
  • 代码随想录day3 | LeetCode203. 移除链表元素、LeetCode707. 设计链表、LeetCode206.
    代码随想录day3|LeetCode203.移除链表元素、LeetCode707.设计链表、LeetCode206.反转链表为了防止早上写博客上传图片失败,今天试试下午写,发现图片上传正常链表基础文章链接:链表基础C/C++的定义链表节点方式,如下所示://单链表structListNode{intval;/......
  • 实训day30(8.16)
    一、回顾1、mysql和python    (1)mysql5.7    1.1不需要执行mysql_ssl_rsa_setup    1.2change_master_to不需要getpublickey(2)可以使用pymysql非交互的管理mysql    2.1pymysql.connect(host,user,password,database,port)  ......
  • 打卡信奥刷题(574)用Scratch图形化工具信奥B2090[普及组/提高] 年龄与疾病
    年龄与疾病题目描述某医院进行一项研究,想知道某项疾病是否与年龄有关。因此对以往的诊断记录进行整理,统计0-18、19-35、36-60、61及以上这四个年龄段的患者人数占总患者人数的比例。输入格式输入共2......