文章

5

粉丝

0

获赞

0

访问

343

头像
2009年计算机学科专业基础综合试题 - 第42题回答
数据结构
发布于2025年9月29日 17:42
阅读数 57

(1)基本设计思想 : 设置两个指针slow和fast初始时都指向头结点, 先让fast指针走k步,然后slow和fast一起走,直到fast指向null,此时slow停留的位置就是链表中导数第k个结点,输出该节点的data值

 

(2)实现步骤 : 设置两个指针slow和fast初始时都指向头结点, 先让fast指针走k步,然后slow和fast一起走,直到fast指向null,此时如果slow任然指向头结点说明链表中不存在倒数第k个节点返回0,此时slow停留的位置就是链表中导数第k个结点,输出该节点的data值,返回1

 

(3) 代码实现

数据结构定义

typedef struct LNode {

     int data;

     struct LNode* link;

}LNode, *Linklist;

int Func(Linklist list, int k){

     LNode *fast = list , *slow = list;

     for(int i=0 ; i<k ; i++){ // fast指针先走k步

           fast = fast->link;

     }

     while(fast != null){ // fast和slow一起走

           fast = fast->link;

           slow = slow->link;

     }

    if (slow==list) { // 如果循环结束后slow没有动说明k值有问题

       re...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发