008实现一个算法从一个单链表中返回倒数第n个元素(keep it up)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了008实现一个算法从一个单链表中返回倒数第n个元素(keep it up)相关的知识,希望对你有一定的参考价值。
我们维护两个指针, 它们之间的距离为n。
然后。我将这两个指针同步地在这个单链表上移动,保持它们的距离 为n不变。
那么,
当第二个指针指到空时。第一个指针即为所求。
#include <iostream> struct Node { int data; Node* next; }; void initList(Node* vNode) { for (int i=0; i < 20; ++i) { Node* TempNode = new Node; TempNode->data = i; TempNode->next = vNode->next; vNode->next = TempNode; } } Node* getNthBackWards(const Node* vNode, int vN) { if (vN < 1 || vNode == NULL) return NULL; Node* p = vNode; Node* q = vNode; while (vN>0) { ++q; if (q == NULL) return NULL; --vN; } while (q != NULL) { ++q; ++p; } return p; } int main() { Node* Root = new Node; Root->next = NULL; initList(Root); Node* Result = getNthBackWards(Root, 7); std::cout << Result->data << std::end; return 0; }
以上是关于008实现一个算法从一个单链表中返回倒数第n个元素(keep it up)的主要内容,如果未能解决你的问题,请参考以下文章