链表中倒数第k个结点

题目

牛客网

输入一个链表,输出该链表中倒数第k个结点。

解题思路

  1. 两个指针,快指针先走 k 步,然后慢指针在向前移动,当快指针遍历结束,慢指针指向倒数第 k 个节点
  2. 需要考虑倒数 k 个节点不存在的情况
  1. public ListNode FindKthToTail(ListNode head, int k) {
  2. if (head == null) {
  3. return null;
  4. }
  5. ListNode cursor = head;
  6. ListNode cursorK = head;
  7. int i = 0;
  8. while (cursorK != null) {
  9. cursorK = cursorK.next;
  10. if (i >= k) {
  11. cursor = cursor.next;
  12. }
  13. i++;
  14. }
  15. if (i < k) {
  16. return null;
  17. }
  18. return cursor;
  19. }