题目
给定链表的头节点,获取倒数第k个节点
- 通过快慢指针,先让快指针走k个,然后慢指针和快指针一起走,当快指针抵达时,慢指针指向的就是倒数第k个节点
function process(head, k) {
let first = head;
let second = head;
// 将first指针向前移动k个节点
for (let i = 0; i < k; i++) {
if (first === null) {
return null; // 链表长度小于k
}
first = first.next;
}
// 同时移动first和second指针,直到first指针到达链表尾部
while (first !== null) {
first = first.next;
second = second.next;
}
// second指针所指向的节点就是倒数第k个节点
return second;
}