首页 > 其他分享 >快慢指针使用

快慢指针使用

时间:2023-04-12 13:22:05浏览次数:41  
标签:快慢 slow ListNode fast next dummyHead 使用 指针

1.快慢指针实现删除链表的倒数第n个节点

原题链接删除第n个节点

解题思路为设置两个指针,一个fast指针,一个slow指针,先让fast指针移动n次,然后fast和slow同时移动,当fast移动到最后一位的时候,删除slow当前节点。

class Solution {
public:
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        ListNode* dummyHead = new ListNode(0);
        dummyHead->next = head;
        ListNode* slow = dummyHead;
        ListNode* fast = dummyHead;
        while(n-- && fast != NULL) {
            fast = fast->next;
        }
        fast = fast->next; // fast再提前走一步,因为需要让slow指向删除节点的上一个节点
        while (fast != NULL) {
            fast = fast->next;
            slow = slow->next;
        }
        slow->next = slow->next->next; 

        // ListNode *tmp = slow->next;  C++释放内存的逻辑
        // slow->next = tmp->next;
        // delete nth;

        return dummyHead->next;
    }
};

 

标签:快慢,slow,ListNode,fast,next,dummyHead,使用,指针
From: https://www.cnblogs.com/52ld/p/17309494.html

相关文章

  • LargeKernel3D:在3D稀疏CNN中使用大卷积核
    前言 2DCNN使用大卷积代替小卷积,增大了卷积核的感受野,捕获到的特征更偏向于全局,效果也得到了提升,这表明较大的kernelsize很重要。但是,当直接在3DCNN中应用大卷积核时,那些在2D中成功的模块设计在3D网络效果不好,例如深度卷积。为了应对这一重要挑战,本文提出了空间分区......
  • 使用MySql8.0+项目无法连接数据库问题
    MySql连接字符串:jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai注意这里的useSSL为true:表示使用安全连接经过查阅网络博客发现将useSSL修改为false可以正常连接具体原因之后更新......
  • MFC-GetMainWnd获取主窗口指针
     CWinApp*pwin=AfxGetApp();//获取当前应用进程的指针CWnd*pWnd=pwin->GetMainWnd();//获取主窗口指针CGetMainWndDlg*pDlg=(CGetMainWndDlg*)pWnd;//主窗口指针转化成对话框类指针pDlg->SetWindowText(_T("练习"));CWnd*pWnd1=pWn......
  • Quartz 简单使用
    Scheduler每次执行,都会根据JobDetail创建一个新的Job实例,这样就可以规避并发访问的问题(jobDetail的实例也是新的)Quzrtz定时任务默认都是并发执行,不会等待上一次任务执行完毕,只要间隔时间到就会执行,如果定时任务执行太长,会长时间占用资源,导致其它任务堵塞@DisallowConcurrentEx......
  • 外贸公司在选择使用企业邮箱时面临的优势
    外贸公司使用ZohoMail企业邮箱的优势?域名做为扩展名的企业邮箱与外界沟通交流,给人一种专业,印象,公司的消费者会经常要求工作流程发一封详解原材料给到消费者,倘若用的是企业邮箱价值评定。倘若员工特别是在销售员在运用ZohoMail企业邮箱进行一些外事接待沟通交流的话,当这一员工离职......
  • UVa 113 / POJ 2109 Power of Cryptography (使用double处理大整数&泰勒公式与误差分
    113-PowerofCryptographyTimelimit:3.000secondshttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=99&page=show_problem&problem=49http://poj.org/problem?id=2109题意:给出n和p,求出 ,但是p可以很大()如何存储p?不用大数可不可以?先看看double......
  • vue项目通过外部配置文件读取接口地址- 在webpack-index.html模板中使用环境变量
    概述:在index.html模板中判断当前环境,处于开发环境下时读取process环境变量、处于生产环境下时读取根目录配置文件(./config.js),两种环境下将配置统一挂载到window全局变量上(SET_CONFIG)config.jswindow.SITE_CONFIG={appTitle:'系统测试',version:'1.0.0',apiURL:''......
  • Android Kotlin实战之高阶使用泛型扩展协程懒加载详解
    前言:通过前面几篇文章,我们已基本掌握kotlin的基本写法与使用,但是在开发过程中,以及一些开源的API还是会出现大家模式的高阶玩法以及问题,如何避免,接下来讲解针对原来的文章进行一些扩展,解决大家在工作中遇到的问题,如何去解决如果还有人不了解kotlin,可以查看我的基础篇kotlin。Android......
  • 在pycharm中使用Matplotlib的pyplot时报错MatplotlibDeprecationWarning
    本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/298在使用飞浆平台,练习平台上的demo:实践:手写数字识别任务,出现了下面的错误,demo地址: https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/beginner/quick_start_cn.html......
  • 手动搭建自己的nuget服务器及使用
    手动搭建自己的nuget服务器及使用 这篇文章的主要目的:1.搭建自己的私有的nuget服务器2.打包代码为nuget包3.在其他项目中使用私有服务器上的nuget包一.搭建自己的nuget服务器1.创建一个空的ASP.NETWeb应用程序2.使用nuget管理器,添加nuget.server包安装成功以后,目......