文章
25
粉丝
6
获赞
0
访问
1.5k
1.
设计思想:
答案合法,当且仅当,表中至少有k个元素。
若合法,保证待查元素和末尾元素的距离是k即可。
2.
具体步骤:
先判断是否合法,也就是是否有k个元素
假设是有的,那么用一个指针指向第一个链表位置,第二个指针也指向第一个指针。
第二个指针向后移动k个位置。此时如果合法,说明答案一定合法。
然后两个指针同时向后移动,直到第二个指针移动到表尾,此时,第一个指针在倒数第k个位置上。
最后输出第一个指针的数值,就是答案所求。
3.
Int last_k(List L,int k){
ElemType *p=L->next,*q=p;
int I=0;
for(;i<k&&q->next;i++) q=q->next;
Ifi(I<k) return -1;//失败
While(q->next){
P=p->next,q=q->next;
}
Return p->val;
}
登录后发布评论
暂无评论,来抢沙发