输入一个链表,输出该链表中倒数第k个结点。
方法1:遍历两次链表
第一次记录链表的长度为num
第二次遍历到num-k,即为倒数第k个结点
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
if(head==null)
return null;
if(k==0)
return null;
int num=0;
ListNode temp=head;
while(temp!=null){
num++;
temp=temp.next;
}
if(k>num){
return null;
}
temp=head;
for(int i=1;i<=num-k;i++){
temp=temp.next;
}
return temp;
}
}
方法二:用两个指针遍历
第一个指针先走k个结点
当两个指针结束后,第二个指针指向即为倒数第k个结点
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
if(head=&#