题目
输入一个链表,输出该链表中倒数第k个结点。
解题思路
两个指针,第一个指针从链表的头指针开始遍历向前走k-1步,第二个指针保持不动;从第k步开始,第二个指针也开始从链表的头指针开始遍历、由于两个指针的距离保持在k-1,当第一个指针到达链表的尾结点时,第二个指针正好指向倒数第k个节点。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
if(k <= 0 || head == null){
return null;
}
ListNode head1 = head;
ListNode head2 = head;
for(int i=1; i<k; i++){
if(head1.next != null){
head1 = head1.next;
}else{
return null;
}
}
while(head1.next!=null){
head1 = head1.next;
head2 = head2.next;
}
return head2;
}
}