我们维护两个指针, 它们之间的距离为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)的更多相关文章

  1. 009实现一个算法来删除单链表中的一个结点,仅仅给出指向那个结点的指针(keep it up)

    呵呵,这个题不能直接删除已知的结点.由于是单链表,不知道前驱,仅仅知道 后继结点,直接删除会使链表断开.只是我们能够删除已知结点的后继结点, 把后继结点的值赋值给已知结点. #include < ...

  2. cc150:实现一个算法来删除单链表中间的一个结点,仅仅给出指向那个结点的指针

    实现一个算法来删除单链表中间的一个结点,仅仅给出指向那个结点的指针. 样例: 输入:指向链表a->b->c->d->e中结点c的指针 结果:不须要返回什么,得到一个新链表:a- ...

  3. python经典算法面试题1.5:如何找出单链表中的倒数第K个元素

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. [微软笔试题] 难度系数:⭐⭐⭐ 考察频率:⭐⭐⭐⭐⭐ 题目描 ...

  4. 6.查找单链表中的倒数第k个结点

    普通思路:先将整个链表从头到尾遍历一次,计算出链表的长度size,得到链表的长度之后,就好办了,直接输出第(size-k)个节点就可以了(注意链表为空,k 为0,k为1,k大于链表中节点个数时的情况) ...

  5. remove Nth Node from linked list从链表中删除倒数第n个元素

    Given a linked list, remove the nth node from the end of list and return its head. For example, Give ...

  6. 如何找出单链表中的倒数第k个元素

    方法一:快慢指针法 在查找过程中,设置两个指针,初始时指向首元结点(第一个元素结点). 然后,让其中一个指针先前移k步. 然后两个指针再同时往前移动.当先行的指针值为NULL时,另一个指针所指的位置就 ...

  7. 删除链表中的倒数第n个元素

    示例: 输入链表:1->2->3->4->5 , 2 输出:1->2->3->5 Python解决方案1: # Definition for singly-l ...

  8. leetCode题解之删除单链表中指定的元素

    1.问题描述 Remove all elements from a linked list of integers that have value val. ExampleGiven: 1 --> ...

  9. 设单链表中存放n个字符,试设计一个算法,使用栈推断该字符串是否中心对称

    转载请注明出处:http://blog.csdn.net/u012860063 问题:设单链表中存放n个字符.试设计一个算法,使用栈推断该字符串是否中心对称,如xyzzyx即为中心对称字符串. 代码例 ...

随机推荐

  1. Oracle多表的简单查询

    Oracle多表的简单查询 .多表查询 多表查询是指基于两个和两个以上的表或是视图的查询. 问题:显示雇员名,雇员工资及所在部门的名字[笛卡尔集]? select t.ename,t.sal,t1.d ...

  2. C#的静态构造函数

    “静态构造函数”典型应用于第一次使用类时的初始化工作,注意“第一次”,意思是它只执行一次. 有同学说了,类的初始化不是有构造函数嘛?我们回答:构造函数是每个实例被声明时都会执行的,它属于每一个实例,而 ...

  3. 11g r2 模拟OCR和voting disk不可用,完整恢复过程,以及一些注意事项

    环境:RHEL5.8 RAC 11.2.0.3.0 1:查看ORC和voting disk信息: In 11g Release 2 your voting disk data is automatic ...

  4. Qt入门-字符串类QString

    原地址:http://blog.csdn.net/xgbing/article/details/7770854 QString是Unicode字符的集合,它是Qt API中使用的字符串类. QStri ...

  5. Axure基础系列教程

     Axure rp 6.5的软件安装.汉化与注册  认识Axure的软件界面 生成网页原型的三种方法 如何关闭IE浏览器在生成原型时候的安全警告 在chrome中使用axure生成原型的问题 站点地图 ...

  6. 根据li标签 查找class="alcw4 alcw41"对应的值

    jrhmpt01:/root/lwp/0526# cat a2.pl use LWP::UserAgent; use DBI; use POSIX; use Data::Dumper; use HTM ...

  7. 基于visual Studio2013解决C语言竞赛题之1087数字变换

        题目 解决代码及点评 /************************************************************************/ /* ...

  8. html-图片button,抓包---Shinepans

    askLike.html <html> <meta http-equiv="content-type" content="text/html;chars ...

  9. hdu 1536 SG函数模板题

    S-Nim Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  10. 0 and 1

    Description Andrewid the Android is a galaxy-famous detective. In his free time he likes to think ab ...