题目描述
输入一个链表,输出该链表中倒数第k个结点。
分析:
定义2个指针,第一个先跑K个,然后两个一起跑,当第一个跑到头的时候,第二个就是指在倒数第K个节点上。
代码
public class Solution {
public ListNode FindKthToTail(ListNode head, int k) {
/**
* step 1:创建2个节点,都指向头结点;
*/
ListNode first = head;
ListNode second = head;
/**
* step 2:让第二个节点指向第K个节点;
*/
for (int i = 0; i < k; i++) {
/**
* 如果出现链表长度<k的情况,方法直接返回;
*/
if (second == null) {
return null;
}
second = second.next;
}
/**
* step 3:
*/
while (second!= null) {
first = first.next;
second = second.next;
}
return first;
}
}