剑指Offer22-链表中倒数第K个节点
📄题目描述:
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。
🤔思路:
思路一:
使用快慢两个指针,两个指针之间相差K个节点,当快指针指向链表尾端时,慢节点指向倒数第K个节点。
☕代码:
1 | public ListNode getKthFromEnd(ListNode head, int k) { |
快慢指针的命名:
快 former
慢 latter
另一种写法可以先通过 K 步 for 循环找到快指针的位置,再进行 while 循环。