题目描述: 输入一个链表,输出该链表中倒数第k个结点。
思路: 1.用两个指针构造一把长度为k的“尺子”,初始时两个指针都指向头结点 2.再将第一个指针指向第k个结点。然后两个指针同时往后移动 3.当第一个指针到达末尾的时候,第二个指针所在位置即为倒数第k个结点 (注意边界)
实现:
public class Solution {
public ListNode
FindKthToTail(ListNode head
,int k
) {
if(head
==null
||k
<=0){
return null
;
}
ListNode pre
=head
;
ListNode last
=head
;
for(int i
=1;i
<k
;i
++){
if(pre
.next
!=null
){
pre
=pre
.next
;
}
else{
return null
;
}
}
while(pre
.next
!=null
){
pre
= pre
.next
;
last
=last
.next
;
}
return last
;
}
}