算法竞赛备赛——【数据结构】链表

链表

原地逆置

206. 反转链表 - 力扣(LeetCode)

C++ 复制代码
class Solution {
public:
    ListNode* reverseList(ListNode* head) {//链表无头节点 原地逆置 
        ListNode* pre=head;
        ListNode* cur=NULL;
        ListNode* t=NULL;//t=head->next 若head指向空链表会报错 非法访问其他空间
        while(pre!=NULL){
            t=pre->next;
            pre->next=cur;
            cur=pre;
            pre=t;
        }
        head=cur;
        return head;
    }
};

快慢指针

LCR 140. 训练计划 II - 力扣(LeetCode)

让两个指针相差k个 只用遍历一轮

C++ 复制代码
class Solution {
public:
    ListNode* trainingPlan(ListNode* head, int cnt) {
        ListNode* f=head;//fast
        ListNode* s=head;//slow
        int count=0;
        while(f!=NULL&&count<cnt){
            count++;
            f=f->next;
        }
        while(f!=NULL){
            f=f->next;
            s=s->next;
        }
        return s;
    }
};

静态链表

用数组描述的链表

跳表

跳跃表、跳跃列表,在有序链表的基础上增加了"跳跃"的功能,有序链表实现而二分查找。

1206. 设计跳表 - 力扣(LeetCode)

有点复杂 暂时不需要做

相关推荐
感哥5 分钟前
C++ 内存管理
c++
聚客AI12 分钟前
🙋‍♀️Transformer训练与推理全流程:从输入处理到输出生成
人工智能·算法·llm
大怪v3 小时前
前端:人工智能?我也会啊!来个花活,😎😎😎“自动驾驶”整起!
前端·javascript·算法
惯导马工5 小时前
【论文导读】ORB-SLAM3:An Accurate Open-Source Library for Visual, Visual-Inertial and
深度学习·算法
骑自行车的码农6 小时前
【React用到的一些算法】游标和栈
算法·react.js
博笙困了6 小时前
AcWing学习——双指针算法
c++·算法
感哥7 小时前
C++ 指针和引用
c++
moonlifesudo7 小时前
322:零钱兑换(三种方法)
算法
感哥17 小时前
C++ 多态
c++
沐怡旸1 天前
【底层机制】std::string 解决的痛点?是什么?怎么实现的?怎么正确用?
c++·面试