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

(链表 删除链表的倒数第N个结点)leetcode 19

设空结点指向head便于插入和删除结点

考虑特殊情况 head结点被删除

a结点仅用来测试长度,找到目标结点的位置

b结点为空结点指向head返回值

cur用来删除目标值(特殊情况 目标值为head 这时cur=b)

则开始就将cur初始化为b开始遍历

/**
 * 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* removeNthFromEnd(ListNode* head, int n) {
        if(head->next==nullptr)
        {
            return nullptr;
        }

    ListNode* a=head;
    ListNode* b= new ListNode();
    ListNode* cur=b;
    b->next=head;
    int len=0;
    while(a!=nullptr)
    {
        a=a->next;
        len++;
    }
    
    for(int i=1;i<=len-n;i++)//使cor置于目标结点的前面,目标结点可能是head 
    {
       cur=cur->next;
    }
    cur->next=cur->next->next;
    return b->next; //目标值不是head 本身b->head 目标值是head的时候cor=b 也是b->head->next
    }
};

相关文章:

  • 【Elasticsearch】自定义内置的索引生命周期管理(ILM)策略。
  • 博客系统测试报告
  • 17. LangChain实战项目2——易速鲜花宣传文案批量生成并导出
  • 探秘基带算法:从原理到5G时代的通信变革【十】基带算法应用与对比
  • 【图像处理与OpenCV:技术栈、应用和实现】
  • 防火墙旁挂组网双机热备负载均衡
  • Storm 踩坑之路
  • Animate Anyone本地部署教程:AI动画生成技术的革命性突破
  • 网卡驱动接收数据----软中断处理数据----socket接收数据
  • 太阳同步轨道的进动速度解析
  • 摄像头应用编程(二):单平面视频采集
  • TCP 连接故障排查与 SYN 洪泛攻击防御
  • 【网络编程】之TCP通信步骤
  • 幸狐picomax SDK 适配 rv1160G2 摄像头
  • CyberRT(apollo) 定时器模块简述及bug分析
  • 【Elasticsearch】索引生命周期管理相关的操作(Index Lifecycle Actions)
  • KVMOVS组网配置案例-4
  • 机器学习:特征提取
  • Linux远程连接vscode
  • MySql面试总结(二)
  • 阚吉林任重庆市民政局党组书记,原任市委组织部主持日常工作的副部长
  • 体坛联播|郑钦文收获红土赛季首胜,国际乒联公布财报
  • 夜读丨喜马拉雅山的背夫
  • 长期对组织隐瞒真实年龄,广元市城发集团原董事韩治成被双开
  • 欧洲承诺投资6亿欧元吸引外国科学家
  • 昆明阳宗海风景名胜区19口井违规抽取地热水,整改后用自来水代替温泉