问题描述
在单链表中求出倒数第K个节点,要求快速。
方法一:利用链表的长度(不推荐)
此方法必须事先知道链表的长度,在有长度的信息链表中,此方法可行。
比如我之前的链表是这样的实现,参考博文:http://blog.csdn.net/dawn_after_dark/article/details/73610674此链表含有头节点,头节点含有长度信息,所以我们可以充分运用长度信息。先让指针指向第一个节点,然后head->value(链表的长度)-k,即可求出要走到倒数第K个需要走几步。
Node* findKthNode(int); //返回倒数第K个
实现
Node* LinkList::findKthNode(int k) {
Node* first = head->next;
if (k <= 0 || k > head->value) {
cout <<