题目:
42.(15分)
已知一个带有表头结点的单链表,结点结构为:![](https://i-blog.csdnimg.cn/blog_migrate/bfda477c525d4a5ec84751492ae89e1a.png)
假设该链表只给出了头指针list,在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第K个位置上的结点 (K为正整数),若查找成功,算法输出该结点的data域的值,并返回1;否则只返回0。要求:
(1)描述算法的基本设计思想;
(2)描述算法的详细实现步骤(使用C或
C++或
Java语言实现),关键之处请给出简要注释。
答案:
增加2个指针变量和一个整型变量,从链表头向后遍历,其中指针p指向当前遍历的结点,指针p1指向p1所指向结点的前k个结点