面试题:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。
来源:互联网 发布:mac ndk环境变量配置 编辑:程序博客网 时间:2024/06/06 01:34
题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。
链表结点定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
链表结点定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
解题思路:
使用两个指针,p1,p2,先把p1的指针指向第k个元素,然后p1和p2同时向后遍历,当p1遍历到结尾时,p2正好遍历到倒数第k个。
代码如下:
#include <stdlib.h>#include <iostream>#include <string.h>using namespace std;struct ListNode{ int m_nKey; ListNode* m_pNext;};ListNode *Head=new ListNode();ListNode *end;int flag=0,k;void newset(ListNode *&Head,int n){ListNode *t;t=new ListNode();t->m_pNext=Head;t->m_nKey=n;Head=t;}void find(ListNode *p1,ListNode *p2){flag++;if(flag==k&&p1!=end){flag--;find(p1->m_pNext,p2->m_pNext);}else if(flag==k&&p1==end){cout<<"输出倒数第k个结点:"<<p2->m_nKey<<endl;return;}else if(flag<k){find(p1->m_pNext,p2);}}int main(){end=new ListNode();Head->m_pNext=end;Head->m_nKey=8;newset(Head,4);newset(Head,5);newset(Head,3);newset(Head,7);newset(Head,3);newset(Head,6);newset(Head,2);cout<<"Head->m_nKey="<<Head->m_nKey<<endl;ListNode *p1=Head;ListNode *p2=Head;flag=-1;k=rand()%8+1;cout<<"k="<<k<<endl;find(p1,p2);return 0;}
- 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针
- 输入一个单向链表,输出该链表中倒数第k 个结点。链表的倒数第0个结点为链表的尾指针。
- 输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。
- 13.输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针
- 输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表 的尾指针
- 输入一个单向链表,输出该链表中倒数第 k 个结点。链表的倒数第0 个结点为链表的尾指针。
- 输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针
- 面试题:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。
- 11. 微软面试题:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针
- 一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针
- 第13题: 题目:输入一个单向链表,输出该链表中倒数第k 个结点。链表的倒数第0 个结点为链表的尾指针。
- 微软算法100道题------输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针
- 微软100题13题(输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针)
- 面试题15:输入一个链表,输出该链表中倒数第k个结点。
- 面试题15、输入一个链表,输出该链表中倒数第k个结点。
- 13、输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- webServcie 接口和http接口
- WordPress上传中文文件名或图片名乱码问题
- yum的优先级
- 对于交通灯系统的学习
- 2013豆瓣校园招聘研发类笔试题
- 面试题:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。
- Linux程序存储空间布局
- adb logcat tools
- 网新恒天2013年校园招聘笔试
- Vim插件
- •vc++中mfc窗口对象的清除-(2013/09/18)
- 关于数组下标越界
- [LeetCode] Largest Rectangle in Histogram
- •关于vc多文档应用中opengl的使用-(2013/09/18)