单链表的操作

编程实现一个单链表的建立/测长/打印。[日本某著名家电/通信/IT企业
面试题]
答案:
完整代码如下:

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

编程实现单链表删除节点。[美国某著名分析软件公司面试题]

解析:如果删除的是头节点,如下图所示。

则把head指针指向头节点的下一个节点。同时free p1,如下图所示。

如果删除的是中间节点,如下图所示。

 

 

则用p2的next指向p1的next同时,free p1,如下图所示。

 

 

答案:
完整代码如下:

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

编写程序实现单链表的插入。[美国某著名计算机嵌入式公司2005年面试题]

解析:单链表的插入,如下图所示。

如果插入在头节点以前,则p0的next指向p1,头节点指向p0,如下图所示。

如果插入中间节点,如下图所示。

则先让p2的next指向p0,再让p0指向p1,如下图所示。

如果插入尾节点,如下图所示。

则先让p1的next指向p0,再让p0指向空,如下图所示。

答案:完整代码如下:

 

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