首页 >> 知识问答 >

单向链表查找倒数第n个元素(单向链表)

2024-02-22 23:07:24

问题描述:

单向链表查找倒数第n个元素(单向链表),有没有人能救救孩子?求解答!

最佳答案

推荐答案

2024-02-22 23:07:24

大家好,我是小跳,我来为大家解答以上问题。单向链表查找倒数第n个元素,单向链表很多人还不知道,现在让我们一起来看看吧!

1、算法f 30的功能是,删除并返回链表中指针s所指结点的前驱 你的程序并不是实现上面的功能, 而是实现删除并返回链表中指针s所指结点 typedef struct node //链表结点结构体 { DataType data; //链表结点成员:数值 struct node *next; //链表结点成员:后续结点指针 }*LinkList; DataType f 30(LinkList s) //将循环链表的s结点指针作为参数传递进来 { LinkList pre。

2、p; //声明两个结构体变量 DataType e; pre=s; //pre指向s结点 p=s->next; //p指向s结点的下一结点(也就是p指向pre的后继) while( p!=s) //当p不指向s指向的结点,这个是用于判断循环链表从s结点开始遍历,遍历是否完毕的 { pre=p; //pre指向它的后续结点。

3、也就是现在的p p=p->next; //p指向p的后续,这样始终保证,pre指向p的前驱 } //当上述循环执行完毕后。

4、p指向s,pre指向s的前驱 pre ->next=p->next; //此时pre指向s的前驱,p指向s。

5、所以这一句就将s的前驱的next指向了s的next,将s结点从链表中取出 e=p->data; free(p); //删除p指向的结点,也就是s结点 return e; }。

本文到此讲解完毕了,希望对大家有帮助。

  免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。

 
分享:
最新文章