单行链表寻找倒数第k个节点
来源:互联网 发布:eia数据公布 时间 编辑:程序博客网 时间:2024/06/05 21:02
/**
*题目介绍:给出一个单向链表,输出该链表的倒数第k个节点
* 设尾节点开始从0编号
*/
解题思路:两个指针往后移动,一定要注意边界的处理情况。此处我设置了一个头指针,头指针不存数据,仅仅作为头标志。
/***题目介绍:给出一个单向链表,输出该链表的倒数第k个节点* 设尾节点开始从0编号*/#include <iostream>#include <stdlib.h>#include <cstdio>using namespace std;struct node{ int value; struct node * next;} *head;inline void nodeinit(struct node *n){ n->next = NULL; n->value = 0;}void creatnodelist(){ //头指针 应该首先分配地址 if(head == NULL) head = (struct node *)malloc(sizeof(struct node)); nodeinit(head); int v; struct node * pt = head; scanf("%d",&v); while(v) { if(pt->next == NULL) pt->next = (struct node *)malloc(sizeof(struct node)); pt=pt->next; nodeinit(pt); pt->value = v; //cout<<pt->value ; scanf("%d",&v); }}int findLastK(int k){ struct node * p1=head; struct node * p2=head; while(k--) p1=p1->next; p1=p1->next; while(p1 != NULL) p1=p1->next,p2=p2->next; return p2->value;}void print(){ struct node * p=head->next; while(p!=NULL) cout<<p->value<<" ",p=p->next;}int main(){ cout << "create node list:" << endl; creatnodelist(); print(); int k; cout<<"\ninput k :"; scanf("%d",&k); cout<<"\nthe last "<<k<<" node is : "<<findLastK(k)<<endl; return 0;}
- 单行链表寻找倒数第k个节点
- 寻找链表的倒数第k个节点
- 寻找单向链表的倒数第k个节点
- 寻找链表的倒数第K个节点
- 寻找倒数第K个节点...
- 寻找倒数第K个节点...
- 链表倒数第k个节点
- 链表倒数第k个节点
- 链表倒数第k个节点
- 链表倒数第K个节点
- 链表倒数第k个节点
- 链表倒数第k个节点
- 链表倒数第K个节点
- offer面试题二-----寻找链表的倒数第K个节点
- 剑指Offer :寻找链表中倒数第K个节点
- 输出单向链表倒数第k个节点,倒数第0个指向尾节点.
- 寻找链表的倒数第N个节点
- 寻找链表倒数第K个结点
- http协议
- Android调用WebService
- 使用Visual SVN 2.5以上版本,ubuntu客户端连接失败的问题解决方法
- POJ 2135-Farm Tour
- Linux源文件编译安装SVN(Subversion)
- 单行链表寻找倒数第k个节点
- kvm虚拟机管理、迁移
- 遥感问题:条带修复
- 全排列,跳台阶,奇偶排序,第一个只出现一次等问题
- jQuery实现 div里面的文字如何自动缩小,避免文字溢出
- 邮件服务器的协议有哪几个?有什么特点?
- Record
- 会话、进程组、进程个人理解
- jsp引入js alert 乱码????? 求解。。