单链表的排序

编程实现单链表的排序。

答案:
完整代码如下:

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

编程实现单链表的逆置。[美国某著名分析软件公司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就是中间节点了。
答案:
算法如下:

 

posted @ 2017-02-08 10:03  我有一壶酒  阅读(825)  评论(0编辑  收藏  举报