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

链表

原地逆置

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)

有点复杂 暂时不需要做

相关推荐
zxctsclrjjjcph7 分钟前
【递归、搜索和回溯】递归、搜索和回溯介绍及递归类算法例题
开发语言·c++·算法·力扣
朱剑君11 分钟前
排序算法——堆排序
算法·排序算法
10000hours35 分钟前
【SGL】Scatter-Gather List内存传输技术
linux·数据结构·网络协议·list·存储·sgl
某不知名網友36 分钟前
linux_进程地址空间(虚拟地址空间)
java·linux·算法
hallo-ooo1 小时前
【C/C++】范围for循环
c语言·c++
bryant_meng1 小时前
【python】Calculate the Angle of a Triangle
开发语言·python·算法
纪元A梦1 小时前
贪心算法应用:最小反馈顶点集问题详解
java·算法·贪心算法
泡泡_02241 小时前
密码学--RSA
c++·密码学
咚咚轩1 小时前
蓝桥杯15届国赛 最小字符串
蓝桥杯
1白天的黑夜11 小时前
动态规划-62.不同路径-力扣(LeetCode)
c++·算法·leetcode·动态规划