题目描述
输入一个链表,输出该链表中倒数第k个结点。
一、方法一
一、分析
快慢(双)指针
二、代码
public ListNode FindKthToTail(ListNode head,int k) { //5,{1,2,3,4,5}
ListNode p, q;
p = q = head;
int i = 0;
for (; p != null; i++) {
if (i >= k)
q = q.next;
p = p.next;
}
return i < k ? null : q;
}
二、方法二
一、分析
简单粗暴,目的是找的倒数第k个对应的顺数是第几个
二、代码
public static ListNode FindKthToTail(ListNode head,int k) {
ListNode node = head;
int count=0;
if(head == null||k<=0)
{
return null;
}
while(head!=null)
{
head = head.next;
count++;
}
if(k>count)
{
return null;
}
for(int i = 0;i<count-k;i++)
{
node = node.next;
}
return node;
}