链表中倒数第k个节点
题目描述
输入一个链表,输出该链表中倒数第k个结点。
详解
采用两个指针,快指针与慢指针。
快指针先向前k-1步。然后两个指针同时走,当快指针到达最后一个节点时,此时慢指针即为倒数第k个节点。
时间复杂度为O(n)。
public class Solution { public ListNode FindKthToTail(ListNode head,int k) { ListNode fast = head; ListNode slow = head; for (int i = 0;i<k;i++){ if (fast == null){ return null; } fast = fast.next; } while (fast != null){ fast = fast.next; slow = slow.next; } return slow; } }

浙公网安备 33010602011771号