博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
链表 LeetCode19 删除链表的倒数第 n 个节点
阅读量:6446 次
发布时间:2019-06-23

本文共 1019 字,大约阅读时间需要 3 分钟。

题目:

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

示例:

给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.

使用两根指针,指针间距离为n-1.当一根指针指向链表尾节点时,证明另一根指针所指节点应该被删除。

 

 

/** * 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) {        ListNode* pNode = head;        ListNode* fast = head;        ListNode* slow = head;        //使快指针移动n步,使其与慢指针之间保持一定距离        for (int i = 0; i < n; ++i) fast = fast->next;        if (fast == nullptr)        {            pNode = head->next;            delete head; head = nullptr;            return pNode;        }        //使快慢指针同步运动,直到快指针指向链表尾        while (fast->next != nullptr)        {            fast = fast->next;            slow = slow->next;        }        //使pNext指向该被删除的节点        ListNode* pNext = slow->next;        slow->next = pNext->next;        //释放空间        delete pNext; pNext = nullptr;        return head;    }};

 

转载地址:http://edvwo.baihongyu.com/

你可能感兴趣的文章
nuxt中使用路由守卫
查看>>
golang源码安装时fatal error: MSpanList_Insert错误
查看>>
Redux基础篇
查看>>
React入门0x015: Portal-如果可以更愿意称为`容器`
查看>>
百度X-MAN超级AI计算平台,人工智能界的超级英雄
查看>>
听说支付宝有一个“疯起来连自己都打”的项目
查看>>
React+React-Route+Antd+Recharts+Excel(获取Excel数据,绘制Charts)
查看>>
ES学习笔记(18)--es6模块化
查看>>
LRC歌词原理和实现高仿Android网易云音乐
查看>>
基于webpack4.x, babel7.x 搭建的多页面脚手架, 简化前端开发环境配置,开箱即用,专注于开发,不依赖三大框架...
查看>>
以太坊Token通证或者代币的作用
查看>>
lodash源码分析之isArguments
查看>>
在PPT动画中学算法之Delete Node in a Linked List
查看>>
SAP ERP和C4C Account和Contact的双向同步
查看>>
无服务器架构(Serverless Architectures)(上)
查看>>
vuex其实超简单,只需3步
查看>>
夯实Java:从面向对象说起
查看>>
Nginx 安装
查看>>
JavaScript模拟自由落体
查看>>
sonar使用指南
查看>>