题目:输入一个链表,输出该链表中倒数第k个结点。
思路:定义一个全局变量count记录递归深度。在方法内定义局部变量sign记录当前方法所在深度。两者相减若等于k说明当前深度对应倒数第k个结点。
public class Solution {
int count = 0;
public ListNode FindKthToTail(ListNode head,int k) {
int sign = count;
if(k>0&&head!=null){
if(head.next!=null){
count++;
ListNode node = FindKthToTail(head.next,k);
if(count-sign==k){
return head;
}
return node;
}else{
if(sign!=0){
count++;
if(count-sign==k){
return head;
}else{
return null;
}
}else{
return head;
}
}
}else{
return null;
}
}
}