面试9之输入一个链表,输出该链表中倒数第k个结点。
2017-04-21 16:55
369 查看
题目描述
输入一个链表,输出该链表中倒数第k个结点。#include<iostream> using namespace std; #include<cassert> struct ListNode { int Val; struct ListNode *next; ListNode(int x):Val(x),next(NULL) { } }; ListNode* FindKthToTail(ListNode *pListHead,unsigned int k) { assert(pListHead); ListNode *pCur = pListHead; while (--k) { if (pCur->next == NULL) return NULL; pCur = pCur->next; } ListNode *pPre = pListHead; while (pCur->next) { pPre = pPre->next; pCur = pCur->next; } return pPre; } void test() { ListNode *p1 = new ListNode(1); ListNode *p2 = new ListNode(2); ListNode *p3 = new ListNode(3); ListNode *p4 = new ListNode(4); ListNode *p5 = new ListNode(5); p1->next = p2; p2->next = p3; p3->next = p4; p4->next = p5; ListNode *pK = FindKthToTail(p1,3); cout << pK->Val <<endl; delete p1; delete p2; delete p3; delete p4; delete p5; } int main() { test(); cout << "hello..." <<endl; return 0; }
相关文章推荐
- [java 面试100道]13.输入一个单向链表,输出该链表中倒数第k个结点。
- 输入一个单向链表,输出该链表中倒数第k个结点
- 每天一道算法题7 查找链表中倒数第k个结点 ; 输入一个单向链表。如果该链表的结点数为奇数,输出中间的结点;如果链表结点数为偶数,输出中间两个结点前面的一个
- 微软面试之13 输入一个单向链表 输出该链表的倒数第k个节点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 面试题:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。
- 13 输入一个单向链表,输出该链表中倒数第k个结点
- 13.输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针
- 剑指offer:输入一个链表,输出该链表中倒数第k个结点。
- 输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表 的尾指针
- 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针
- 微软算法100道题------输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针
- 微软面试100题之13题:输入一个单向链表,输出该链表中倒数第k 个结点
- 数据结构——算法之(004)(输入一个单向链表,输出该链表中倒数第k个结点)
- 面试题15、输入一个链表,输出该链表中倒数第k个结点。
- 输入一个单向链表,输出其倒数第k个结点
- 13、输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 11. 微软面试题:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针
- 输入一个链表,输出该链表中倒数第k个结点。