力扣19. 删除链表的倒数第N个节点

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

示例 1:

输入:head = [1,2,3,4,5], n = 2      输出:[1,2,3,5]

示例 2:

输入:head = [1], n = 1     输出:[]

示例 3:

输入:head = [1,2], n = 1     输出:[1]

/**
 * 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){return nullptr;}
        ListNode* HEAD=new ListNode(0);//创建新节点
        HEAD->next=head;//多创建一个节点,这样删除节点不用考虑是否是头节点
        int cnt=0;
        ListNode* pre=HEAD;
        ListNode* cur=head;
        
        while(cur){
            cnt++;cur=cur->next;
        }
        //删除第cnt-n+1个节点,从第一个节点移动cnt-n次
        cur=head;
        for(int i=0;i<cnt-n;i++){
            pre=pre->next;
            cur=cur->next;
            //printf("pre=%d,cur=%d\n",pre->val,cur->val);
        }

        pre->next=cur->next;
        return HEAD->next;
    }
};

相关推荐

  1. 19-删除倒数N节点

    2024-06-16 00:18:02       36 阅读
  2. 19.删除倒数N节点

    2024-06-16 00:18:02       11 阅读
  3. 19. 删除倒数 N 结点

    2024-06-16 00:18:02       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-16 00:18:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-16 00:18:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-16 00:18:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-16 00:18:02       18 阅读

热门阅读

  1. leetcode 200 岛屿数量

    2024-06-16 00:18:02       5 阅读
  2. C语言----深入理解指针(5)

    2024-06-16 00:18:02       7 阅读
  3. Linux之tar打包解包命令

    2024-06-16 00:18:02       3 阅读
  4. Linux 常用命令 - cd 【切换目录】

    2024-06-16 00:18:02       7 阅读
  5. Golang:依赖注入与wire

    2024-06-16 00:18:02       6 阅读
  6. Vue 3 组合式编程:革新前端开发的新时代

    2024-06-16 00:18:02       6 阅读