当前位置: 首页 > news >正文

刷题日记—链表—快慢指针的应用

今天刷链表类的题目,碰到了几个快慢指针的题目:
1.删除倒数第k个节点:
题目:image
这个题目没有给size,所以无法遍历,这时候就要借助快慢指针.
代码如下:

class Solution {
public:int kthToLast(ListNode* head, int k) {ListNode* fast=head;ListNode* slow=head;while(k--){fast=fast->next;  //走了k步,指向k+1  }while(fast){ fast=fast->next; //走了n-k步,指向NULL,从k到n要走n-k步,从k+1走向n+1即NULL也要走n-k步//即从a到b要走b-a步slow=slow->next;//走了n-k步,指向n-k+1,恰好是倒数第k个位置}return slow->val;}
};

2.中间节点的删除或返回
题目:image
代码:```cpp
/**

  • 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
    middleNode(ListNode* head) {
    ListNode* fast=head;
    ListNode* slow=head;
    while(fast){
    fast=fast->next;
    if(fast==NULL){
    return slow;

    }
    fast=fast->next;
    if(fast==NULL){return slow->next;}
    

    slow=slow->next;

    }
    

    return NULL;

    }
    };

采用快2慢1的方法来获取中间节点,由于快指针走到n时,慢指针恰好走到n/2的位置
http://icebutterfly214.com/news/545/

相关文章:

  • go构建streamablehttp mcp服务
  • 对Grid绑定移动
  • 10.27博客
  • [Mirror] LinuxMirrors: Linux 一键换源项目
  • 20232309 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 衡量模型生成图片质量的指标
  • 【转载】‘tensorrt.tensorrt.Builder‘ object has no attribute ‘build_cuda_engine‘
  • 20232403 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • WPF datagrid mvvm loaded 100M items,prism.wpf,prism.dryioc
  • sg.绑定键盘事件
  • 壁纸收集
  • Windows11安装miniconda
  • 10.27 CSP-S模拟40 改题记录
  • 详细介绍:Redis多租户资源隔离方案:基于ACL的权限控制与管理
  • 20251027周一日记
  • 学校协同云盘怎么选?2025年10大热门教育网盘推荐与对比
  • GPU集群之间的交互
  • CF1267G Game Relics
  • 102302115方朴第一次作业
  • 解题报告-梦熊 CSP-S2025 模拟赛T2
  • 鄙“站”麻将和算24,刷新后会换
  • 20232422 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 20232404 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 「WC2014-紫荆花之恋」题解
  • 谢谢你周医生
  • 来源未知
  • Date 10.27
  • 10.27及动手动脑
  • go包装bing搜索
  • 鼾声识别芯片方案和睡眠产品的应用场景