题目描述: 输入一个链表,输出该链表中倒数第k个结点。为了符合习惯,从1开始计数,即链表的尾结点是倒数第1个节点。例如,一个链表有6个结点,从头结点开始,它们的值依次是1,2,3,4,5,6。则这个链表倒数第三个结点是值为4的结点。 解题思路: 对于单链表来说,没有从后向 ...
正文 本文参考自 剑指offer 一书,代码采用Java语言。 更多: 剑指Offer Java实现合集 题目 输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从 开始计数,即链表的尾结点是倒数第 个结点。例如一个链表有 个结点,从头结点开始它们的值依次是 。这个链表的倒数第 个结点是值为 的结点。 思路 第一直觉是先从头开始遍历,计算链表个数n,然后重新遍历,第n k 个结 ...
2018-10-14 21:59 0 741 推荐指数:
题目描述: 输入一个链表,输出该链表中倒数第k个结点。为了符合习惯,从1开始计数,即链表的尾结点是倒数第1个节点。例如,一个链表有6个结点,从头结点开始,它们的值依次是1,2,3,4,5,6。则这个链表倒数第三个结点是值为4的结点。 解题思路: 对于单链表来说,没有从后向 ...
题目描述: 输入一个链表,输出该链表中倒数第k个结点。例如有一个链表有六个节点1,2,3,4,5,6.则它的倒数第二个节点为5 节点定义如下: 思路一: 设置一个快指针,一个慢指针。像一把尺子,当尺子的一端移动到链表的末尾,则另一端则为倒数第k个节点。 思路 ...
题目描述: 输入一个链表,输出该链表中倒数第k个结点。(hint: 请务必使用链表。) 输入: 输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为两个整数n和k(0<=n<=1000, 0< ...
PS:这是一道出境率极高的题目,记得去年参加校园招聘时我看到了3次,但是每次写的都不完善。 一、题目:链表的倒数第k个节点 题目:输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点 ...
// test14.cpp : 定义控制台应用程序的入口点。 // ...
本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 在一个排序的链表中,如何删除重复的结点?例如,在图3.4(a)中重复结点被删除之后,链表如图3.4(b)所示。 思路 设置一个preNode,用于记录当前结点的前一个结点 ...
看到这道题目,最直观的想法,就是先算出链表的长度n,然后倒数第k个结点就是顺序的第(n-k+1)个数,不过这样需要2次遍历链表,如果要求只能遍历链表一次,那么上述算法就不符合要求了。 那我们就使用第二种算法,设定两个指针p1和p2,两个指针刚开始都指向链表的第一个结点,然后让p1 ...
本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 一个链表中包含环,如何找出环的入口结点?例如,在图3.8的链表中,环的入口结点是结点3。 思路 1.确定链表是否有环:通过两个不同速度的指针确定,当两个指针指向同一个 ...