链表中倒数第k个结点
题目描述
输入一个链表,输出该链表中倒数第k个结点。
题目分析
看到链表,首先我们应该想到它的数据结构为,当前节点有指向下一个节点的指针,题目中需要找到倒数第k个节点,所以我们可以想到如何找到它在正数中的位置,假设链表总长度count,那么倒数第k的位置,它的正数位置为count-k的位置,所以我们只需要计算链表的总长度,然后依次找到当前节点。
代码
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
if(head ==null){
return null;
}
ListNode node = head;
int count =1 ; //链表总长度,头部不为空的时候,证明已经有一个了
while( node.next != null){
count++;
node = node.next ;
}
if (count < k) return null;
ListNode p=head;
for (int i = 0; i < count - k; i++) {
p = p.next;
}
return p;
}
}