注意鲁棒性和算法效率的典型例题:(头文件省略)

typedef struct node
{
int data;
struct node* next;
}ListNode; ListNode* FindKthToTail(ListNode* pListHead, unsigned int k); int main()
{
int i;
const int N = ;
ListNode *head, *p; //随机数种子
srand((unsigned int)time()); //生成链表
head = p = new ListNode;
head->data = rand() % ;
head->next = nullptr;
for ( i = ; i < N; i++)
{
p = p->next = new ListNode;
p->data = rand() % ;
p->next = nullptr;
} //输出链表
for (p = head; p; p = p->next)
{
cout << " " << p->data;
}
cout << endl; //产生随机数
i = rand() % ;
cout << "随机数n=" << i << endl; //输出倒数第k个数
p = FindKthToTail(head, );
if (nullptr == p)
{
cout << "find error" << endl;
}
else
{
cout << "find result: " << p->data << endl;
} cin.get();
return ;
} ListNode* FindKthToTail(ListNode* pListHead, unsigned int k)
{
if (nullptr == pListHead || !k)
return nullptr; int i;
ListNode *p, *q;
p = q = pListHead; for ( i = ; i < k-; i++)
{
if (nullptr==p->next)
{
return nullptr;
}
else
{
p = p->next;
}
}
while (nullptr != p->next)
{
p = p->next;
q = q->next;
} return q;
}

求链表中倒数第k个节点的更多相关文章

  1. php实现求链表中倒数第k个节点

    php实现求链表中倒数第k个节点 一.总结 $head = $head->next; //1.将$head节点next域里面的记录的那个地址值($head节点的下一个节点的地址)给$head,$ ...

  2. 剑指offer-第三章高质量的代码(输出该链表中倒数第K个节点)

    题目:输入一个链表,输出这个链表中倒数第K个节点.(代码的鲁棒性) 思路:用两个指针p1和p2,都指向头节点,开始的时候,p2不动,p1移动k-1次,指向第k个节点.此时,如果p1->next! ...

  3. 《剑指offer》 链表中倒数第k个节点

    本题来自<剑指offer> 链表中倒数第k个节点 题目: 输入一个链表,输出该链表中倒数第k个结点. 思路: 倒数第k个节点,而且只能访问一遍链表,定义两个节点,两者之间相差k个距离,遍历 ...

  4. 15:链表中倒数第K个节点

    /** * 面试题15:链表中倒数第K个节点 * 输入一个链表,输出该链表中倒数第k个结点. */ public class _15_linked_K { public static void mai ...

  5. 题目15 链表中倒数第K个节点

    ///////////////////////////////////////////////////////////////////////////////////// // 5. 题目15 链表中 ...

  6. 力扣题解-面试题22. 链表中倒数第K个节点

    题目描述 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1.2.3.4.5. ...

  7. 剑指 Offer 22. 链表中倒数第k个节点

    剑指 Offer 22. 链表中倒数第k个节点 Offer 22 常规解法 常规解法其实很容易可以想到,只需要先求出链表的长度,然后再次遍历取指定长度的链接即可. package com.walega ...

  8. LeetCode 剑指 Offer 22. 链表中倒数第k个节点

    剑指 Offer 22. 链表中倒数第k个节点 题意 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点. ​ 例如,一个链表有 6 个 ...

  9. 链表中倒数第K个节点

    问题描述: 找出链表中倒数第K个节点 思路分析: 用两个指针,一前一后,保持k个距离,前面的指针移动到末尾,后面的指针就刚好直到第k个节点, 要考虑到k为0,倒数第k个节点不存在的情况. 参考代码: ...

随机推荐

  1. 转载: scikit-learn学习之回归分析

    版权声明:<—— 本文为作者呕心沥血打造,若要转载,请注明出处@http://blog.csdn.net/gamer_gyt <—— 目录(?)[+] ================== ...

  2. VMware Workstation pro 12下载以及序列号

    VMware Workstation 12序列号:下载地址:https://download3.vmware.com/software/wkst/file/VMware-workstation-ful ...

  3. Maven最佳实践:版本管理

    什么是版本管理 首先,这里说的版本管理(version management)不是指版本控制(version control),但是本文假设你拥有基本的版本控制的知识,了解subversion的基本用 ...

  4. CentOS 6.6 yum 方式安装sunversion 服务器

    检查已安装版本 #检查是否安装了低版本的SVN[root@localhost /]# rpm -qa subversion #如果存储旧版本,卸载旧版本SVN[root@localhost modul ...

  5. 将war文件解压到指定目录

    问:如何将.war文件解压到指定目录? 答:jar命令没有这样的选项. eg:将abc.war解压到当前文件夹? 答:进入目标文件即abc.war文件所在的文件夹,按住shift键并在该文件夹空白处点 ...

  6. R(八): R分词统计-老九门

    分析文本内容基本的步骤:提取文本中的词语 -> 统计词语频率 -> 词频属性可视化.词频:能反映词语在文本中的重要性,一般越重要的词语,在文本中出现的次数就会越多.词云:让词语的频率属性可 ...

  7. CentOS下的网络配置文件说明

    CentOS网络配置主要涉及到以下四个文件: 1./etc/sysconfig/network 在CentOS官方网站上给出了如下说明: The/etc/sysconfig/networkfile i ...

  8. 【python】浅谈encode和decode

    对于encode和decode,笔者也是根据自己的理解,有不对的地方还请多多指点. 编码的理解: 1.编码:utf-8,utf-16,gbk,gb2312,gb18030等,编码为了便于理解,可以把它 ...

  9. hyper-v 中 安装 Centos 7.0 设置网络 教程

    安装环境是: 系统:win server 2012 r2 DataCenter hyper-v版本:6.3.9600.16384 centos版本:7.0 从网上下载的 centos 7.0  如果找 ...

  10. thinkphp 常用

     {$Think.session.adminuser}  获取session信息,模版和js中都可以调用 模版调用 <empty name="Think.session.userid& ...