Crossin的编程教室

标题: 删除单链表重复元素 [打印本页]

作者: 倾城一笑    时间: 2017-4-23 15:07
标题: 删除单链表重复元素
Node *CompareList(Node *pHead)//删除重复元素
{
        Node *pNext,*tmp;
        if(pHead == NULL)
        {
                printf("链表为空,无法操作\n");
                exit(0);
        }
        else
        {
                while(pHead !=NULL)
                {
                        pNext = pHead->next;
                        while(pNext != NULL)
                {
               
                        if(pHead->Elem == pNext->Elem)
                        {
                                tmp = pNext->next;
                                free(pNext);
                                pNext = tmp;
                        }
                        else pNext = pNext->next;
                }
                        pHead = pHead->next;
                }
        }
    return pHead;
}
此算法不知道哪里出问题了,运行完之后删除了所有的元素。

作者: crossin先生    时间: 2017-4-25 00:02
pHead = pHead->next; 啥情况?
这放在循环里,不是把 pHead 一直移到最末尾了




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5