链表中倒数第k个节点

解题思路:

  1. 初始化快慢指针 fast、slow;

  2. fast 先向后移动 k 个位置,然后 fast 和 slow 再一起向后移动;

  3. 当 fast 走到最后的时候,slow 的位置就是倒数第 k 个位置;

复杂度:

  1. 时间复杂度:O(N),N 为链表长度;

  2. 空间复杂度:O(1);

代码实现:

function getKthFromEnd(head: ListNode | null, k: number): ListNode | null {
  let slow = head;
  let fast = head;

  while (k-- > 0) fast = fast.next;

  while (fast !== null) {
    fast = fast.next;
    slow = slow.next;
  }

  return slow;
};

打赏作者
您的打赏是我前进的动力
微信
支付宝
评论

中午好👏🏻,我是 ✍🏻   疯狂 codding 中...

粽子

这有关于产品、设计、开发的问题和看法,还有技术文档和你分享。

相信你可以在这里找到对你有用的知识和教程

了解更多

目录

  1. 1. 链表中倒数第k个节点
  2. 2. 解题思路:
  3. 3. 复杂度:
  4. 4. 代码实现: