寻找倒数第K个结点
2014-10-30 10:17
281 查看
#include<stdio.h> #include<iostream> using namespace std; /** * 找到链表中的倒数第k个节点 */ //定义结构体 typedef struct Node{ int val; Node* next; } Node; //创建链表 Node* createNode(){ int in; Node* n; cin >> in; if(in == 1000){ n = NULL; }else{ n = new Node(); n->val = in; n->next = createNode(); } return n; } //寻找倒数第k个节点 Node* findLastKth(Node* head,int k){ if(head == NULL || k<0) return NULL; Node* pBefore = head; Node* pAfter = head; int count = 0; while(count < k-1){ count++; if(pAfter->next == NULL){ return NULL; } pAfter = pAfter->next; } while(pAfter->next != NULL){ pBefore = pBefore->next; pAfter = pAfter->next; } return pBefore; } int main(){ Node* n1 = createNode(); cout << "++++++++++++++链表为+++++++++++++++++"<< endl; Node* cur = n1; while(cur!=NULL){ cout<<cur->val<<endl; cur = cur->next; } int k = 3; Node* LsThK = findLastKth(n1,k); cout << "++++++++++++++倒数第k个节点为+++++++++++++++++"<< endl; cout << LsThK->val <<endl; return 0; }
相关文章推荐
- 寻找单链表中倒数第k个结点
- 寻找链表中倒数第K个结点的位置
- 寻找链表中倒数第k个结点
- 寻找链表中倒数第K个结点的位置
- 《剑指offer》——寻找链表中倒数第k个结点
- 数据结构List实例(三):寻找倒数第k个结点值
- 寻找链表倒数第K个结点
- 链表面试题(五)---寻找链表的倒数第k个结点O(N)
- 《剑指Offer》面试题:寻找链表中倒数第k个结点
- 剑指offer-15:单链表中倒数第k个结点
- 【剑指offer-Java版】15链表中倒数第K个结点
- 删除单链表的倒数第k个结点
- 求链表中倒数第k个结点
- 面试之路(27)-链表中倒数第K个结点
- 《面试题精选》11.链表中倒数第k个结点
- 《剑指offer》:[3]得到链表中倒数第K个结点
- 【剑指offer】链表中倒数第k个结点
- 剑指offer系列-T16链表中倒数第k个结点
- 链表中倒数第k个结点
- CCI 2.2 找出单向链表中倒数第k个结点