剑指offer面试题15:链表中倒数第k个结点
来源:互联网 发布:怎么参加爱淘宝 编辑:程序博客网 时间:2024/06/05 06:00
题目:输入一个链表,输出该链表中倒数第K个结点。链表的尾结点是倒数第1个节点。
思路:两个指针相差k-1。
#include <iostream>using namespace std;struct ListNode { int m_nValue; ListNode *m_pNext;};ListNode *CreateList() { int a; cin >> a; ListNode *head; head = NULL; if (a != -1) { head = new ListNode; head->m_nValue = a; head->m_pNext = CreateList(); } return head;}ListNode *FindKthToTail(ListNode *phead, int k) { if (phead == NULL || k == 0) { cout << "Invalid Input!" << endl; return NULL; } ListNode *pFirst = phead; ListNode *pSecond = phead; for (int i = 1; i < k; i++) { if (pFirst->m_pNext != NULL) pFirst = pFirst->m_pNext; else { cout << "Invalid k!" << endl; return NULL; } } while (pFirst->m_pNext != NULL) { pFirst = pFirst->m_pNext; pSecond = pSecond->m_pNext; } cout << pSecond->m_nValue << endl; return pSecond;}int main() { int k = 1; ListNode *head = CreateList(); ListNode *Kth = FindKthToTail(head, k); (Kth == NULL) ? cout << "Invalid!" << endl : cout << Kth->m_nValue << endl; return 0;}
0 0
- 剑指offer面试题 链表中倒数第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个结点(java实现)
- 剑指offer面试题15:链表中倒数第k个结点
- 剑指offer--面试题15:链表中倒数第k个结点
- 剑指offer面试题15(java版):链表中倒数第k个结点
- 剑指offer——面试题15:链表中倒数第k个结点
- 剑指Offer之面试题15:链表中倒数第K个结点
- 容器云平台使用体验:数人云Crane
- 关于大型网站的架构之路
- 学习java笔记
- ubuntu16.04.01 64位 mingw-w64 编译 VLC-2.2.4版本 firefox插件、IE activex插件、windows安装包。
- MySQL5.6多实例部署
- 剑指offer面试题15:链表中倒数第k个结点
- 获取输入
- android (3):组件的布局(非常详细)
- java.lang.IllegalStateException: startRecording() called on an uninitialized AudioRecord.
- 杨辉三角
- 理解和使用 JavaScript 中的回调函数
- 可输入可选择下拉框
- react native video
- 常见OJ注意事项