题目:在一个单向链表中,找到距离最后一个元素为k的那个元素,例如,给定一个链表,1->2->3->4,并且k=2,这时返回的元素是2
分析:找到距离最后一个元素为k的那个元素,依旧使用两个链表指针runner和chaser,区别在于让runner提前k步出发,当runner到达链表的尾部时,chaser正好到距离尾部k的位置处。
参考答案:
#include "stdafx.h"
#include<iostream>
using namespace std;
struct ListNode{
int val;
ListNode *next;
};
ListNode *findkthtoLast(ListNode *head,int k)
{
ListNode *runner=head,*chaser=head;
if(head==NULL||k<0) return NULL;
for(int i&