链表中倒数第k个结点
题目
输入一个链表,输出该链表中倒数第k个结点。
解题思路
- 两个指针,快指针先走 k 步,然后慢指针在向前移动,当快指针遍历结束,慢指针指向倒数第 k 个节点
- 需要考虑倒数 k 个节点不存在的情况
1. public ListNode FindKthToTail(ListNode head, int k) {
2. if (head == null) {
3. return null;
4. }
6. ListNode cursor = head;
7. ListNode cursorK = head;
9. int i = 0;
11. while (cursorK != null) {
12. cursorK = cursorK.next;
14. if (i >= k) {
15. cursor = cursor.next;
16. }
18. i++;
19. }
21. if (i < k) {
22. return null;
23. }
25. return cursor;
26. }
