# 链表中倒数第k个结点
# 题目
输入一个链表,输出该链表中倒数第k个结点。
# 思路
- 两个指针p1,p2,开始都指向头结点
- 先让p2走k步,然后p1,p2同时向下走
- 当p2指向null的时候,p1就是倒数第k个节点
# 代码
const head = {
val: 1,
next: {
val: 2,
next: {
val: 3,
next: {
val: 4,
next: null
}
}
}
}
function findK(head, k) {
if (!head || !k) return null
let p1 = head
let p2 = head
let index = 1
while (p2.next) {
index++
p2 = p2.next
if (index > k) {
p1 = p1.next
}
}
return (k <= index) && p1
}
findK(head, 2)
← 删除列表中的节点 两个链表的第一个公共节点 →