欢迎来到 s a y − f a l l 的文章 欢迎来到say-fall的文章 欢迎来到say−fall的文章
文章目录
题目:返回倒数第k个节点
- LeetCode:返回倒数第k个节点

- 思路解析:
我们之前在处理中间节点的时候,学过一个方法叫快慢指针,这个题目的笨办法就是先来遍历一遍,得到总数目然后再遍历一遍总数目的倒数第k个
但是我们如果用快慢指针的话就能很方便的处理遍历多次的问题:我们只要一开始让满指针在head的位置不动,而快指针向前走k个,然后不断同步向前,最后快指针变为空,慢指针的位置就是要求的节点,返回值val即可
- 代码:
struct ListNode
{
struct ListNode* next;
int val;
};
//返回链表倒数第k个元素
typedef struct ListNode ListNode;
int kthToLast(struct ListNode* head, int k)
{
ListNode* slow = head;
ListNode* fast = head;
for (int i = 0;i < k;i++)
{
fast = fast->next;
}
while (fast)
{
fast = fast->next;
slow = slow->next;
}
return slow->val;
}
- 本节完…
1276

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



