目录
题目
图解
代码
面试题 02.02. 返回倒数第 k 个节点 - 力扣(LeetCode)https://leetcode.cn/problems/kth-node-from-end-of-list-lcci/description/
题目
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。
注意:本题相对原题稍作改动
示例:
输入: 1->2->3->4->5 和 k = 2 输出: 4
说明:
给定的 k 保证是有效的。
图解
最终我们的tail就走到这个节点
代码
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/
typedef struct ListNode ListNode;
int kthToLast(struct ListNode* head, int k) {// 快慢指针,先让快指针走k步,然后再和慢指针同时走ListNode *fast = head, *tail = head;//让快指针走k步while(k--){fast = fast->next;}//同时走while(fast){fast = fast->next;tail = tail->next;}return tail->val;
}