题目描述
输入一个链表,输出该链表中倒数第k个结点。
思路:
这道题应该注意边界问题,解决的话其实很简单。但是考察的是鲁棒性,这方面没有研究...但是感觉自己写的问题应该不大吧;
首先定义两个node,a和b,a一开始遍历,直到a遍历到k-1个节点,b开始遍历;也就是说a比b领先k-1个点;所以当a到了末尾的时候,b就是倒数第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) {
int cout=0;
int tk=k;
ListNode pre=head;
ListNode ans=head;
while(pre!=null){
cout++;
tk--;
if(tk<0)
ans=ans.next;
pre=pre.next;
}
if(cout<k)
return null;
return ans;
}
}