【路飞】链表倒数第k个节点

170 阅读1分钟

记录两道算法题

两道题都是一样的解法。倒数第 k 个节点和最后一个节点的距离就是双指针之间的距离。

比较详细的推导过程可以看 这篇文章 的删除倒数第k个节点。

稍微有点不一样的这次不是拿倒数第 k 个节点的前一个节点。

返回倒数第 k 个节点

leetcode-cn.com/problems/kt…


    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
    }

结束