【链表】得到单链表中倒数第k个结点
来源:互联网 发布:软件架构设计师论文 编辑:程序博客网 时间:2024/06/07 20:11
【算法一】
假设单链表有n个节点,如果尾节点为倒数第1个节点,那么则为正向的第n个,有对应关系为(倒数 => 正数):
- 1 => n
- 2 => n-1
- 3 => n-2
- k => n-k+1
那么求倒数第k个节点转变为求正数第n-k+1个节点。首先我们需要知道有多少个节点(遍历一次),在找正向的第n-K+1个节点(再遍历一次),总的时间复杂度是O(2n)。
【算法二】
设2个指针pa和pb同时指向头节点,pa指针先移动k-1步,然后2个指针同时一步一步地向前移动,当pa指针到达尾节点时,pb指针所指向的正好是倒数第k个节点。这种算法只用遍历链表一次,时间复杂度为O(n)。
【算法三】
反转该链表,此时尾节点变为头节点(遍历一次),然后从头节点开始找第k个节点即可(再遍历一次),时间复杂度也为O(2n)。
- 【链表】得到单链表中倒数第k个结点
- 《剑指offer》:[3]得到链表中倒数第K个结点
- 输出单链表中倒数第k个结点
- 找出单链表中倒数第 K个结点
- 查找单链表中倒数第k个结点
- 输出单链表中倒数第k个结点
- 寻找单链表中倒数第k个结点
- 输出单链表中倒数第k个结点
- 查找单链表中倒数第k个结点||旋转单链表
- 输出单链表中倒数第k个结点(Java版)
- 剑指offer-15:单链表中倒数第k个结点
- 剑指offer:链表中倒数第k个结点(链表)
- 【链表2】链表中倒数第k个结点
- 链表2:链表中倒数第k个结点
- 剑指offer_链表---链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- Android中使用硬件加速的技巧
- MFC 使用CRichEdit2
- 相关子查询和嵌套子查询 [SQL Server]
- Linux下libpcap的安装
- 安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图
- 【链表】得到单链表中倒数第k个结点
- priority_queue
- Adobe开发的基于web的开源代码编辑器 - Brackets
- java连接池介绍
- backtrack 安装到 arm CPU的手机
- 安卓图表引擎AChartEngine(四) - 源码示例 嵌入Acitivity中的折线图
- 新手学PHP必看
- DOS CMD批处理FOR 中的Delims和Tokens总结
- 得到数字全排组合