单链表的操作
编程实现一个单链表的建立/测长/打印。[日本某著名家电/通信/IT企业
面试题]
答案:
完整代码如下:
------------------------------------------------------------------------------------------------------------------------------
编程实现单链表删除节点。[美国某著名分析软件公司面试题]
解析:如果删除的是头节点,如下图所示。
则把head指针指向头节点的下一个节点。同时free p1,如下图所示。
如果删除的是中间节点,如下图所示。
则用p2的next指向p1的next同时,free p1,如下图所示。
答案:
完整代码如下:
------------------------------------------------------------------------------------------------------------------------------------------------------
编写程序实现单链表的插入。[美国某著名计算机嵌入式公司2005年面试题]
解析:单链表的插入,如下图所示。
如果插入在头节点以前,则p0的next指向p1,头节点指向p0,如下图所示。
如果插入中间节点,如下图所示。
则先让p2的next指向p0,再让p0指向p1,如下图所示。
如果插入尾节点,如下图所示。
则先让p1的next指向p0,再让p0指向空,如下图所示。
答案:完整代码如下: