[算法]找出单链表中的倒数第k个元素
来源:互联网 发布:免费网络主播色情表演 编辑:程序博客网 时间:2024/06/05 05:13
解题思路:
为了求出链表中的倒数第k个元素,最容易想到的方法是首先遍历一遍单链表,求出整个单链表的长度n,然后将倒数第k个,转换为正数第n-k个,接下去遍历一次就可以得到结果。不过这种方法需要对链表进行两次遍历,第一次遍历用于求解单链表的长度,第二次遍历用于查找正数第n-k个元素。
如果沿从头至尾的方向从链表中的某个元素开始,遍历k个元素刚好到达链表尾,那么元素就是要找的倒数第k个元素。设计如下:依次对链表的每一个结点元素进行这样的测试,遍历k个元素,查看是否到达链表尾,直到找到那个倒数第k个元素。此种方法将对同一批元素进行反复多次的遍历,对于链表的大部分元素而言,都要遍历k个元素,如果链表长度为n,则该算法时间复杂度为O(kn)级,效率太低。
存在另一种更高效的方法。在查找过程中,设置两个指针,让其中一个指针比另一个指针先前移k-1步,然后两个指针同时往前移动。循环直到先行的指针指为NULL时,另一个指针所指的位置就是所要找的位置
程序如下:
阅读全文
0 0
- [算法]找出单链表中的倒数第k个元素
- [算法]找出单链表中的倒数第k个元素
- 如何找出单链表中的倒数第k个元素
- 一次遍历找出单链表中的倒数第k个元素
- 如何找出单链表中的倒数第k个元素
- 如何找出单链表中的倒数第K个元素
- 如何找出单链表中的倒数第k个元素
- 如何找出单链表中的倒数第k个元素
- 找出单链表中的倒数第k个元素
- Java:如何找出单链表中的倒数第k个元素
- 找出单链表中倒数第 k 个元素
- 找出单链表的倒数第k个元素
- 如何找出单链表中的倒数第k个元素-----思路分析
- 程序员面试题目总结--链表(2)【找出单链表中的倒数第K个元素】
- 算法分析-查找单链表中的倒数第k个元素和中间元素
- 【100题】找出链表倒数第k个元素
- leetcode 删除单链表中的倒数第k个元素
- 找出单向链表中倒数第k个节点的算法
- vs2013报错“incompatible PDB format in 'xxx.pdb'”
- ImageLoader的使用
- 架构师图谱
- 数组
- 为什么springMVC和Mybatis逐渐流行起来了?
- [算法]找出单链表中的倒数第k个元素
- CSS笔记
- Python 3 was configured to use ASCII as encoding for the environment 问题解决
- Unity 流程控制
- 数据库索引的作用和优点缺点
- Java基础之泛型
- numpy.tile
- Java进阶之虚拟机《一》:Java内存区域与内存溢出
- Kubernetes的基本概念说明