码迷,mamicode.com
首页 > 其他好文 > 详细

求链表的倒数第k个节点

时间:2016-05-11 19:35:14      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

问题描述:给定一个链表的头节点,求出链表的倒数第k个节点。

分析:这是链表里的经典问题,存在多种解法,下面给大家分享下我的想法。

        解法一:很直观的一种做法是从头到尾扫描链表,然后求倒数第k个,但是由于单链表无法从尾部向头部扫描,

                   因此可以借助其他的辅助空间去存储扫描过的所有节点,例如,数组或栈均可。

        解法二:计算出链表中节点的总数为n,根据k 将其转化为正数的第n-k+1个节点,然后在从链表头开始走n-k+1个节点,就是所求。

        解法三:可以设置两个指针实现,假设两个指针分别为p1和p2,p1从链表头开始,先走k-1步,然后p2从头开始走,p1和p2同时走,

                   等到p1走到尾节点,p2所指的节点就是所要求的节点。

 

        由于三种解法都比较简单,其中解法三很巧妙,我就不再写具体的程序了,读者可以自行验证。

求链表的倒数第k个节点

标签:

原文地址:http://www.cnblogs.com/guozhenqiang/p/5483079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!