基本思路
快慢指针。慢指针指向第k个节点时,快指针指向最后一个节点,快指针比慢指针快k-1步。快指针的next为null判断结束。
struct ListNode
{
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* getKthFromEnd(ListNode* head, int k)
{
ListNode *fast = head;
for (int i = k - 1; i > 0; i--)
fast = fast->next;
ListNode *slow = head;
while (fast->next)
{
slow = slow->next;
fast = fast->next;
}
return slow;
}
本文解析了如何使用快慢指针算法求解链表中第k个节点距离链表尾部的距离。通过逐步迭代和节点移动,找到当快指针到达末尾时,慢指针的位置即为所求。适合理解链表操作和双指针问题的解决方法。
354

被折叠的 条评论
为什么被折叠?



