• 【算法集训专题攻克篇】第十二篇之链表


    算法集训传送门

      👉引言

    在这里插入图片描述

    铭记于心
    🎉✨🎉我唯一知道的,便是我一无所知🎉✨🎉

    💖 ❄️我们的算法之路❄️💖

       众所周知,作为一名合格的程序员,算法 能力 是不可获缺的,并且在算法学习的过程中我们总是能感受到算法的✨魅力✨。
                  ☀️🌟短短几行代码,凝聚无数前人智慧;一个普通循环,即是解题之眼🌟☀️
       💝二分,💝贪心,💝并查集,💝二叉树,💝图论,💝深度优先搜索(dfs),💝宽度优先搜索(bfs),💝数论,💝动态规划等等, 路漫漫其修远兮,吾将上下而求索! 希望在此集训中与大家共同进步,有所收获!!!🎉🎉🎉

    在这里插入图片描述


    今日主题:链表


     👉⭐️第一题💎

       ✨题目

          707. 设计链表 - 力扣(LeetCode)

       ✨思路

    链表类问题比较暴力的解法就是将其全部放到数组里去做,对于这道设计链表的题的话,当然就只能老老实实的设计类了,手撕链表了

       ✨代码

    class Listnode
    {
    public:
        int val;
        struct Listnode *next;
        Listnode() : val(0), next(nullptr) {}
        Listnode(int v) : val(v), next(nullptr) {}
        Listnode(int v, struct Listnode *x) : val(v), next(x) {}
    };
    class MyLinkedList
    {
        struct Listnode *head;
        int size;
    
    public:
       
        MyLinkedList()
        {
            head = new Listnode();
            size = 0;
        }
    
      
        int get(int index)
        {
            if (index < 0 || index >= size)
                return -1;
           Listnode *trav = head;
            for (int i = 0; i < index + 1; ++i)
                trav = trav->next;
            return trav->val;
        }
    
      
        void addAtHead(int val)
        {
           Listnode *newNode = new struct Listnode(val);
            newNode->next = head->next;
            head->next = newNode;
            size += 1;
        }
    
      
        void addAtTail(int val)
        {
         Listnode *trav = head;
            for (int i = 0; i < size; ++i)
                trav = trav->next;
            trav->next = new struct Listnode(val);
            size += 1;
        }
    
       
        void addAtIndex(int index, int val)
        {
            if (index < 0)
                addAtHead(val);
            else if (index == size)
                addAtTail(val);
            else if (index > size)
                return;
            else
            {
                 Listnode *trav = head;
                for (int i = 0; i < index; ++i)
                    trav = trav->next;
                 Listnode *newNode = new struct Listnode(val);
                newNode->next = trav->next;
                trav->next = newNode;
                size += 1;
            }
        }
    
        
        void deleteAtIndex(int index)
        {
            if (index < 0 || index >= size || size == 0)
                return;
            Listnode *trav = head;
            Listnode *del = nullptr;
            for (int i = 0; i < index; i++)
                trav = trav->next;
            del = trav->next;
            trav->next = del->next;
            delete del;
            size -= 1;
        }
    };
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92

     👉⭐️第二题💎

       ✨题目

          2326. 螺旋矩阵 IV

       ✨思路

    该道题与之前的螺旋矩阵类似,只不过从链表生成矩阵,其实就按照之前的走法逆着过来走一遍就好了

       ✨代码

    
    
    • 1

    🌹写在最后💖
    相信大家对今天的集训内容的理解与以往已经有很大不同了吧,或许也感受到了算法的魅力,当然这是一定的,路漫漫其修远兮,吾将上下而求索!伙伴们,明天见!🌹🌹🌹在这里插入图片描述

  • 相关阅读:
    【微机原理笔记】第 6 章 - 输入输出和中断技术
    [运维|数据库] MySQL中的存储过程语句,在PostgreSQL中为什么是函数
    JAVA小游戏拼图
    Linux系统目录详解
    概率统计·随机变量的数字特征【数学期望、方差】
    使用注解方式实现 Redis 分布式锁
    解密第三方登录-微信扫码登录 Java生成二维码
    java并发编程 守护线程 用户线程 main
    从策略和实践,带你掌握死锁检测
    巨噬细胞靶向胆固醇还原酶 DHCR7 抑制剂
  • 原文地址:https://blog.csdn.net/runofsun/article/details/125964003