思路:
定义两个指针,从链表首元结点开始第一个指针先向前走 k-1 步,然后两个指针一起向前遍历,直到第一个指针到达链表的尾结点,此时第二个指针所指的结点即为所求
特殊情况判断:
1 链表结点总数小于k
2 k为0
3 链表为null
LNode*getReverseKNode(LinkList list,int k)
{
if(list==NULL||k==0) {
return NULL;
}
LNode*temp = list;
for(int i=0; i<k-1;i++) {
if(temp->next==NULL) {
returnNULL;
}
temp=temp->next;
}
LNode*result = list;
while(temp->next!=NULL) {
temp=temp->next;
result = result->next;
}
printf("result =%d",result->data);
return result;
}
网友评论