首页 > 编程语言 > 详细

单链表的排序

时间:2017-02-08 10:36:09      阅读:243      评论:0      收藏:0      [点我收藏+]

编程实现单链表的排序。

答案:
完整代码如下:

技术分享

-----------------------------------------------------------------------------------------------------------------------------------------------------

编程实现单链表的逆置。[美国某著名分析软件公司2005年面试题]

解析:
单链表模型如下图所示。

技术分享

进行单链表逆置,首先要让p2的next指向p1,如下图所示。

技术分享

再由p1指向p2,p2指向p3,如下图所示。

技术分享

然后重复p2的next指向p1,p1指向p2,p2指向p3。
答案:完整代码如下:

技术分享

--------------------------------------------------------------------------------------------------------------------------------------------------------

有一个C语言用来删除单链表的头元素的函数,请找出其中的问题并加以纠
正。[中国某著名综合软件公司2005年面试题]

技术分享

解析:如果先做free(head)之后,就找不到head了,下一句head=head->next就不能正确链
接了。

答案:正确程序如下:

技术分享

-----------------------------------------------------------------------------------------------------------------------------------------------------

给出一个单链表,不知道节点N的值,怎样只遍历一次就可以求出中间节点,
写出算法。[中国著名通信企业H公司2007年11月面试题]

解析:设立两个指针,比如*p和*q。p每次移动两个位置,即p=p-> next-> next,q每次移
动一个位置,即q=q-> next。
当p到达最后一个节点时,q就是中间节点了。
答案:
算法如下:

技术分享

 

单链表的排序

原文:http://www.cnblogs.com/yihujiu/p/6376870.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!