关键在于倒数第n个结点,如果让删除第几个结点还是很简单的。所以可以想办法将倒数第几个结点转换成正数的第几个结点,但是题目中并没有给出一共多少个数,所以不太好转化,我们可以利用双指针来操作。利用头指针和尾指针操作,先让尾指针移动到第n个结点处,然后再把头指针和此时的尾指针一块移到最后。这样,尾指针就统计了链表的长度。尾指针一共走了两端,第一端走了n个路程,第二段一共走了总数-n个路程,而此时头结点是陪着尾指针走的。

class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {// pst 是长度为(n+1)的链表的头指针,pen 是长度为(n+1)的链表的尾指针ListNode* pst = head;ListNode* pen = head;for(int i = 0; i < n; i ++)pen = pen -> next;// 特殊处理,如果 pen == NULL 说明删除的是第一个结点,直接返回 head -> nextif(pen == NULL) return (head -> next);// pst 与 pen 同步后移while(pen -> next != NULL){pst = pst -> next;pen = pen -> next;}// 删除节点pst -> next = pst -> next -> next;return head;}
};

单向链表操作之删除倒数第n个结点相关推荐

  1. Java数据结构与算法-SingleLinkedList单向链表插入,删除,查找,修改详解及代码

    SingleLinkedList单向链表插入,删除,查找,修改详解及代码 单向链表学习目标 1. 链表的介绍 2. 单向链表的存储特点以及原理 3. 基本操作:插入,删除等 4. 单向链表应用场景举例 ...

  2. Java单向链表操作详解

    /* 先定义一个Node类用来存储节点的值域和指针域 * 即当前节点中的值和后面节点的方法 * 在C中就是相当与定义一个结构体类型一个数据域和指针域的方法 */ class LNode{//这个写法已 ...

  3. 单向链表操作详解(二)[The End]

    /* 接着讲(测试编译时,请把相应的函数及测试代码放到上一讲代码的相关地方): 排序(选择.插入.冒泡) 插入(有序) */ /* ================================== ...

  4. 【链表】leetcode19.删除链表的倒数第N个节点(C/C++/Java/Js)

    leetcode19.删除链表的倒数第N个节点 1 题目 2 思路 3 代码 3.1 C++版本 3.2 C版本 3.3 Java版本 3.4 JavaScript版本 4 总结 1 题目 题源链接 ...

  5. 删除带头结点单链表中倒数第k个结点

    [问题描述] 设有头结点单链表,删除单链表中倒数第k个结点. [输入形式] 第一行重复输入整数建立带头结点的单链表,输入字符结束. 第二行输入一个整数k,表示删除倒数第k个结点. [输出形式] 输出删 ...

  6. 链表有环是什么意思_互联网大厂offer收割之单向链表的概念及面试题大全

    链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,也适合考察写代码的能力.链表的操作也离不开指针,指针又很容易导致出错.综合多方面的原因,链表题目在 ...

  7. c++使用单向链表存储一组有序数据_《一起学习java和数据结构》系列-数组和链表...

    数组 数组是一个线性表数据结构.它用一段连续的内存地址空间,来存储一些相同类型的数据. 从上面的定义,我们不难看出几个关键词. 线性表:顾名思义,线性表就是数据排列成一条线的数据结构.每一个线性表只有 ...

  8. 单链表操作实现getelem_c语言实现--带头结点单链表操作

    可能是顺序表研究的细致了一点,单链表操作一下子就实现了.这里先实现带头结点的单链表操作. 大概有以下知识点. 1;结点:结点就是单链表中研究的数据元素,结点中存储数据的部分称为数据域,存储直接后继地址 ...

  9. 【融博笔试题】查找单链表倒数第k个结点的值

    继华赛之后,又一次倒在面试门前.基础不扎实就是不行啊! 下来做完这道题,顺便复习单链表.代码如下: //------------------------------------------------ ...

最新文章

  1. 学习SpringMVC——说说视图解析器
  2. ssh excel 导入 mysql_ssh poi解析excel并将数据存入数据库
  3. CodeSmith--SchemaExplorer类结构详细介绍
  4. 函数指针的应用学习Demo
  5. 计算机发展史_最全计算机发展史
  6. 计算机10大经典算法
  7. 苹果6s强制删除id锁_#Vlog# 苹果7绕过id激活锁
  8. 计算机视觉论文-2021-03-10
  9. 3Dmax导入bip(此篇讲解模型都有骨骼)
  10. java+ selenium截图
  11. 【Python数据分析】二手车价格预测
  12. 一分钟了解QPS TPS RPS
  13. unity 物理碰撞
  14. CDN与智能DNS 基本原理
  15. 《使用Java实现一元二次方程求根计算器》改进版
  16. iOS m3u8本地缓存播放(控制下载并发、暂停恢复)
  17. 分享下自己的经历!2020春招四五月份大厂面经 一:(腾讯、网易、斗鱼、富途、美团、快手)
  18. 【ADS学习笔记(一)——ADS介绍】
  19. 低功耗深度休眠后无法唤醒、烧录程序,怎么办?(华大半导体HC32L136)
  20. 爬虫如何实现每天爬取,定点爬取[以股票数据为例]

热门文章

  1. VC++,掀起你的盖头来
  2. 如何聚焦自己的研究方向?一个实例研究
  3. Visualization Document Feb 12 16:42
  4. 回学校之前在家的清理计划
  5. cleanmymac能够很方便的清理mac上面没用的软件,尤其是这个清理大文件的功能
  6. 昨日我是谁,今日谁是我
  7. 记一次对某企业的渗透测试实战
  8. tomcat日志切割-logrotate
  9. 环境变量PATH 、mv 命令 、cp 命令和 查看文档相关的命令
  10. 基本数据结构之BinarySearchTree