剑指Offer(十四):链表中倒数第k个结点

star2017 1年前 ⋅ 296 阅读
摘要

输入一个链表,输出该链表中倒数第k个结点。

一、前言

本系列文章为《剑指Offer》刷题笔记。

刷题平台:牛客网

书籍下载:共享资源

二、题目

输入一个链表,输出该链表中倒数第k个结点。

1、思路

我们可以定义两个指针。第一个指针从链表的头指针开始遍历向前走k-1,第二个指针保持不动;从第k步开始,第二个指针也开始从链表的头指针开始遍历。由于两个指针的距离保持在k-1,当第一个(走在前面的)指针到达链表的尾结点时,第二个指针(走在后面的)指针正好是倒数第k个结点。

效果示意图,以链表总共6个结点,求倒数第3个结点为例:

除此之外,要注意代码的鲁棒性。需要判断传入参数合法性问题。

2、代码

C++:

Python2.7:

方法与C++一致:

用列表,开辟新空间了,不太好。

更多内容请访问:IT源点

相关文章推荐

全部评论: 0

    我有话说: