您的位置:首页 > 理论基础 > 数据结构算法

链表中倒数第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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: