zoukankan      html  css  js  c++  java
  • 【手绘漫画】图解LeetCode之删除链表的倒数第N个节点(LeetCode 19题)

    在这里插入图片描述

    图解LeetCode刷题计划

    1、写在前面

    手绘漫画系列正式上线!!!“图解LeetCode刷题计划” 来了!!!

    今天是第十一期,争取每天一期,最多两天一期,欢迎大家监督我。。。

    我就是个鸽子。。。
    在这里插入图片描述
    开始做链表了,昨天发了单链表的操作,每日一遍,养成习惯!
    在这里插入图片描述

    2、题目

    首先看一下题目,
    在这里插入图片描述
    可能上来你一看,真简单啊,结果看错题了,因为题中说的是倒数第 n 个,傻了吧。

    这里只讲一趟扫描实现的过程,即,双指针做法,好了,废话少说,开始了。
    在这里插入图片描述
    在这里插入图片描述

    3、正文

    好了,来一起看一下。

    首先创建一个虚拟头结点,和头结点相连,定义两个指针。

    先让 firstn 个位置,然后两个指针开始同时运动,这样两个指针的间隔固定为 n,只要 first 走到尾结点,那么 second 的下一个位置就是要删除的节点位置。
    在这里插入图片描述
    删除节点的操作,比较简单,指针改变一下就完事了。

    最后返回虚拟节点的下一个位置,而不是头结点,因为头结点可能改变,但是虚拟节点一定不变!!!
    在这里插入图片描述

    4、代码

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* removeNthFromEnd(ListNode* head, int n) {
            auto fic=new ListNode(0);
            fic->next=head;
            auto first=fic,second=fic;
            while(n--){
                first=first->next;
            }
            while(first->next){
                first=first->next;
                second=second->next;
            }
            second->next=second->next->next;
            return fic->next;
        }
    };
    

    在这里插入图片描述
    在这里插入图片描述

    如果有幸帮到你,请帮我点个【赞】,给个【关注】!如果能顺带【评论】给个鼓励,我将不胜感激。

    如果想要更多的资源,欢迎关注 @我是管小亮,文字强迫症MAX~

  • 相关阅读:
    Calling a parent window function from an iframe
    JSON with Java
    Posting array of JSON objects to MVC3 action method via jQuery ajax
    What's the difference between jquery.js and jquery.min.js?
    jquery loop on Json data using $.each
    jquery ui tabs详解(中文)
    DataTables warning requested unknown parameter
    Datatables 1.10.x在命名上与1.9.x
    jQuery 1.x and 2.x , which is better?
    DataTabless Add rows
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302565.html
Copyright © 2011-2022 走看看