算法学习五---输出链表中倒数第k个结点
2014-04-01 09:41
218 查看
题目:
输入一个单向链表,输出该链表中倒数第k个结点,
链表的倒数第0个结点为链表的尾指针
算法思路:定义两个指针p,qZ指向链表头,然后让q向后移k个偏移量,此时p,q相差距离为k,然后再让p,q同时向后移,直到q指向链表尾,此时p的值就是所要求的
算法伪代码
C++实现
输入一个单向链表,输出该链表中倒数第k个结点,
链表的倒数第0个结点为链表的尾指针
算法思路:定义两个指针p,qZ指向链表头,然后让q向后移k个偏移量,此时p,q相差距离为k,然后再让p,q同时向后移,直到q指向链表尾,此时p的值就是所要求的
算法伪代码
initialize 2 pointer,let them point to link's head let q move index k //now p is differ k with q when q get into the end, the p's position is we want return p's data
C++实现
//initialize 2 pointer ChainNode<T> *p, *q; p = q = first; //let q move index k for(int i = 0; i != k; ++i) { q = q->link; } //now p is differ k with q //when q get into the end, the p's position is we want while(q != NULL) { p = p->link; q = q->link; } //return p's data return p->data;
相关文章推荐
- 每天学习一算法系列(13) (输入一个单向链表,输出该链表中倒数第k个结点)
- 数据结构——算法之(004)(输入一个单向链表,输出该链表中倒数第k个结点)
- 算法学习-----输出链表的倒数第k个节点
- 微软算法100道题------输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针
- 每天一道算法题7 查找链表中倒数第k个结点 ; 输入一个单向链表。如果该链表的结点数为奇数,输出中间的结点;如果链表结点数为偶数,输出中间两个结点前面的一个
- 输出链表中倒数第k个结点
- 剑指offer 输出链表倒数第k个结点
- 经典算法学习——链表中倒数第k个节点
- 华为OJ:输出单向链表中倒数第k个结点
- [C练习]输出链表中倒数第K个结点
- 华为oj:输出单向链表中倒数第k个结点
- 算法题目---链表中倒数第k个结点
- 剑指offer 之 输出链表的倒数第K个结点
- 输出单向链表中倒数第k个结点
- 华为oj 初级 输出单向链表中倒数第k个结点
- 输出链表倒数第k个结点
- 输出链表倒数第k个结点
- 【从零单排之微软面试100题系列】13之输出链表倒数第k个结点
- 将数组的奇数移到前面偶数到后面&&输出链表的倒数第k个结点
- 输出单向链表中倒数第k个结点