【面试题015】链表中倒数第k个结点
可以用两个指针,当第一个指针指向了第k个时候,第二个指针让他指向链表的第一个元素,然后这两个指针同时向后面移动,
当第一个指针移动到末尾的时候,第二个指针指向的就是倒数第K个结点;两个指针的间距保持为k-1;
当我们遍历列表的时候发现用一个指针是解决不了问题的,我们可以尝试用两个指针来解决问题,
一个指针走的比另外一个指针走得快一点,或者先让其中的一个指针走了若干步,然后再让第二个指针来走;
kth.cpp:
1 |
#include <iostream> |
运行结果:
=====Test1 starts:=====
expected
result: 4.
The
key in node is 4.
请按任意键继续.
. .
List.h:
1 |
#ifndef _LIST_H_ |
List.cpp:
1 |
#include "list.h" |
Makefile:
1 |
.PHONY:clean |