记录两道算法题
两道题都是一样的解法。倒数第 k 个节点和最后一个节点的距离就是双指针之间的距离。
比较详细的推导过程可以看 这篇文章 的删除倒数第k个节点。
稍微有点不一样的这次不是拿倒数第 k 个节点的前一个节点。
返回倒数第 k 个节点
function kthToLast(head, k) {
let node = head
// 这种是找到 node = null 为止,
// node不是尾节点
while(k) {
node = node.next
k--
}
while(node) {
node = node.next
head = head.next
}
return head.val
}
链表中倒数第 k 个节点
剑指 Offer 22. 链表中倒数第k个节点 - 力扣(LeetCode) (leetcode-cn.com)
function getKthFromEnd(head, k) {
let node = head
// 这种是 node 是尾节点
while(k > 1) {
node = node.next
}
while(node.next) {
node = node.next
head = head.next
}
return head
}
结束