程序员面试题目总结--链表(2)【找出单链表中的倒数第K个元素】
来源:互联网 发布:扒一扒淘宝上的化妆刷 编辑:程序博客网 时间:2024/05/21 00:56
2、找出单链表中的倒数第K个元素
题目:找出单链表中的倒数第K个元素
分析: 只需遍历一次就能找到倒数第K个元素,设置两个指针,让其中一个指针比另一个指针先前移K步,然后两个指针同时往前移动,循环直到先行的指针值为NULL时,另一个指针所指的位置就是所要找的位置
#include<iostream>using namespace std;typedef struct node{int data;node *next;}linklist;linklist *head=NULL;//创建长度为len的链表linklist* CreateList(int* arr,int len){int data;linklist* pCur,* pRear;head=(linklist*)malloc(sizeof(linklist));pRear=head;int count=0;while(count<len){pCur=(linklist*)malloc(sizeof(linklist));pCur->data=arr[count];pRear->next=pCur;pRear=pCur;count++;}pRear->next=NULL;return head;}//显示链表void ShowList(linklist* p){while(p){cout<<p->data <<' ';p=p->next;}cout << endl;}/********************找出单链表中的倒数第K个元素*******************************//* 只需遍历一次就能找到倒数第K个元素,设置两个指针,让其中一个指针比另一个指针* 先前移K步,然后两个指针同时往前移动,循环直到先行的指针值为NULL时,另一个指针* 所指的位置就是所要找的位置/************************************************************************/linklist* FindElem(linklist* p,int k){linklist* ptr1=p;linklist* ptr2=p;for(int i=0;i<k;i++)ptr1=ptr1->next;while(ptr1!=NULL){ptr1=ptr1->next;ptr2=ptr2->next;}return ptr2;}int main(){int a[]={3,4,5,1,2,-1,7};CreateList(a,sizeof(a)/sizeof(a[0]));ShowList(head->next);cout<<FindElem(head,4)->data << endl;return 0;}
0 0
- 程序员面试题目总结--链表(2)【找出单链表中的倒数第K个元素】
- 如何找出单链表中的倒数第k个元素
- 一次遍历找出单链表中的倒数第k个元素
- 如何找出单链表中的倒数第k个元素
- 如何找出单链表中的倒数第K个元素
- 如何找出单链表中的倒数第k个元素
- 如何找出单链表中的倒数第k个元素
- 找出单链表中的倒数第k个元素
- Java:如何找出单链表中的倒数第k个元素
- 找出单链表中倒数第 k 个元素
- 找出单链表的倒数第k个元素
- 程序员面试金典: 9.2链表 2.2找出单向链表中倒数第k个节点
- 如何找出单链表中的倒数第k个元素-----思路分析
- [算法]找出单链表中的倒数第k个元素
- [算法]找出单链表中的倒数第k个元素
- 【题目8】查找单链表倒数第K个元素
- 《程序员面试金典》--找出链表中倒数第k个节点
- 【100题】找出链表倒数第k个元素
- 广度算法 dijskstra算法 代码实现
- angularjs 利用$http post数据
- Android应用程序签名
- fcntl
- android menu pop弹出框的修改方案
- 程序员面试题目总结--链表(2)【找出单链表中的倒数第K个元素】
- 51. 腾讯面试题:一个二叉树,中序遍历,找一个节点的后一个节点
- CH340晶体不起振
- 获取RunningTaskInfo
- vs2008编译libpng
- hdu 1521 排列组合(指数型母函数)
- mysql更改数据文件目录方法
- SQL server2005 Analysis Services项目中出现以下错误
- Objc Block 对于变量的访问