[剑指offer][面试题15]输出链表倒数第K个结点
来源:互联网 发布:下载wps办公软件mac版 编辑:程序博客网 时间:2024/05/16 17:32
输入一个单向链表,输出该链表中倒数第k个结点。只能遍历链表一次。最后一个结点认为是倒数第一个结点。
#include <iostream>using namespace std;struct Node{ int m_Data; Node *m_pNext; }; Node* findKthNodeToTail(Node *pHead, int iK){if (pHead==NULL || iK<=0){return NULL;}Node *pNode0 = pHead;Node *pNode1 = pHead;while (pNode1 && --iK){pNode1 = pNode1->m_pNext;}if (pNode1==NULL){return NULL;}else{while (pNode1->m_pNext){pNode0 = pNode0->m_pNext;pNode1 = pNode1->m_pNext;}return pNode0;}}void printList(Node *pHead) { bool bEmpty = true; while (pHead){ bEmpty = false; cout<<pHead->m_Data<<"->"; pHead = pHead->m_pNext; } if (!bEmpty){ cout<<"NULL"<<endl; } } int main(){Node nodeA5 = {1, NULL}; Node nodeA4 = {2, &nodeA5}; Node nodeA3 = {3, &nodeA4}; Node nodeA2 = {4, &nodeA3}; Node nodeA1 = {5, &nodeA2}; Node nodeA0 = {6, &nodeA1}; Node *pHeadA = &nodeA0; cout<<"Linked List: "<<endl; printList(pHeadA); for (int i=-1; i<8; i++){cout<<"Try to find "<<i<<"-th element in reverse order: "<<endl;Node *pNode = findKthNodeToTail(pHeadA, i); if (pNode){cout<<"found: "<<pNode->m_Data<<endl;}else{cout<<"Not found!"<<endl;}}}
- [剑指offer][面试题15]输出链表倒数第K个结点
- 剑指offer 输出链表倒数第k个结点
- 剑指offer面试题 链表中倒数第K个结点
- 面试题15:输入一个链表,输出该链表中倒数第k个结点。
- 面试题15、输入一个链表,输出该链表中倒数第k个结点。
- 【剑指offer】面试题15:链表中倒数第k个结点
- 剑指Offer:面试题15 链表中倒数第k个结点
- 剑指offer 面试题15 找到单链表倒数第k个结点
- 《剑指Offer》面试题15:链表中倒数第k个结点
- 《剑指Offer》学习笔记--面试题15:链表中倒数第k个结点
- 剑指offer--面试题15:链表中倒数第K个结点--Java实现
- 【剑指Offer学习】【面试题15 :链表中倒数第k个结点】
- 剑指Offer面试题15(Java版):链表中倒数第K个结点
- 剑指offer代码解析——面试题15求链表中倒数第K个结点
- 剑指offer-面试题15:链表中倒数第K个结点
- 剑指offer 面试题15: 链表中倒数第k个结点 题解
- 剑指offer之面试题15:链表中倒数第k个结点
- 剑指Offer----面试题15:链表中倒数第K个结点
- MySql备份还原命令
- ACE初学者使用指南
- OpenGl中点Bresenham算法画直线
- IE下载docx xlsx变成zip的问题
- mac 搭建cocos-2d-x 2.2以上版本。
- [剑指offer][面试题15]输出链表倒数第K个结点
- poj 3829(水题)
- 自定义ios 状态栏
- 图解iPhone开发入门教程
- 我的APUE学习笔记(二)
- Address already in use: JVM_Bind错误的可能性分析
- 通用按键消抖函数 -- 数据与过程分离
- NGUI-----poplist值的获取代码(可操作控制数据库)
- 黑马程序员——高新技术(枚举)