有一个单链表,其结点的元素值以非递减有序排列,编写一个函数删除该单链表中余的元素值相同的结点。

admin2014-12-25  17

问题 有一个单链表,其结点的元素值以非递减有序排列,编写一个函数删除该单链表中余的元素值相同的结点。

选项

答案本题采用的算法是:从头到尾扫描该单链表,并作这样的操作:若当前结点的元素值与后续结点的元素值不相等,则指针后移,否则删除该后续结点,直到扫描所有的结点。实现速功能的函数如下: node*delete(node*head) { node*q; if(head!=NuLL) { /;当前结点的元素值与后续结点的元素值不相等,则指针后移,否则删除该后续结点*/. while(P一>next!=NULL) if(p一>data!=P一>next一>data)p=P一>next; { q=P一>next; P一>next=q一>next; free(q); } } return(head); }

解析
转载请注明原文地址:https://kaotiyun.com/show/uiVx777K
0

最新回复(0)