链表中倒数第k个结点[数据结构]
2015-01-20 21:53
169 查看
题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。链表结点定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
分析:
通过一快一慢指针遍历一次即可,让fast先走k步,此时slow从头遍历,当fast走到链表尾端时,slow指向即是倒数第k个节点。
伪代码:
ListNode *fast, *slow;
fast = slow = head;
while (k--) {
fast = fast->m_pNext;
}
while (fast) {
fast = fast->m_pNext;
slow = slow->m_pNext;
}
return slow;
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
分析:
通过一快一慢指针遍历一次即可,让fast先走k步,此时slow从头遍历,当fast走到链表尾端时,slow指向即是倒数第k个节点。
伪代码:
ListNode *fast, *slow;
fast = slow = head;
while (k--) {
fast = fast->m_pNext;
}
while (fast) {
fast = fast->m_pNext;
slow = slow->m_pNext;
}
return slow;
相关文章推荐
- 【数据结构】链表中倒数第k个结点
- 【数据结构】链表中倒数第k个结点
- 程序员面试题精选100题(09)-链表中倒数第k个结点[数据结构]
- 程序员面试题精选100题(09)-链表中倒数第k个结点[数据结构]
- 程序员面试题精选100题(09)-链表中倒数第k个结点[数据结构]
- 程序员面试题精选100题(09)-链表中倒数第k个结点[数据结构]
- 数据结构练习(08)链表中倒数第k个结点
- 链表中倒数第k个结点[数据结构]
- 输出该链表中倒数第k个结点
- 寻找链表倒数第K个结点
- 链表中倒数第k个结点
- 链表中倒数第k个结点
- 剑指Offer:面试题15——链表中倒数第k个结点(java实现)
- 剑指Offer学习之面试题15 :链表中倒数第k个结点
- 【LeetCode】Remove Nth Node From End of List && 【九度】题目1517:链表中倒数第k个结点
- 九度_题目1517:链表中倒数第k个结点
- [剑指offer]链表中倒数第k个结点
- 11. 微软面试题:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针
- 每日AC-剑指Offer 链表中倒数第k个结点
- 程序员面试题100题第09题——查找链表中倒数第K个结点