剑指Offer第14题:链表中倒数第k个结点
题目:输入一个链表,输出该链表中倒数第k个结点。
解题思路:最直接的思路是,先遍历一遍链表,得出链表的长度,然后计算出倒数第k个结点的正数位置,之后二次遍历链表并输出结果。更好的解法是:设置快慢两个指针,快指针先走k步,然后慢指针开始走,当快指针遍历完链表的时候,慢指针所在的位置即为倒数第k个结点
代码:
1 | ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { |
题目:输入一个链表,输出该链表中倒数第k个结点。
解题思路:最直接的思路是,先遍历一遍链表,得出链表的长度,然后计算出倒数第k个结点的正数位置,之后二次遍历链表并输出结果。更好的解法是:设置快慢两个指针,快指针先走k步,然后慢指针开始走,当快指针遍历完链表的时候,慢指针所在的位置即为倒数第k个结点
代码:
1 | ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { |