首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环列表-删除所有给定值

循环列表-删除所有给定值
EN

Stack Overflow用户
提问于 2017-03-29 01:44:06
回答 1查看 50关注 0票数 1

我有一个从我的循环列表中删除所有给定值的函数。问题是,每次我尝试删除相邻的值时,程序都会崩溃。例如:list: 0,7,9,9,8,当我想要删除值9时,程序崩溃。

功能:

代码语言:javascript
复制
 void removeAllValue(List2W& l, int x){
        if(isEmpty(l))
            return;

        Element *temp = l.head, *del;
        int i;

        if ( l.head->value == x ){
            temp = temp->next;
            deleteHead(l, i);
        }

        do {
            if ( temp->value == x ){
                if ( l.tail == temp ) {
                    temp = temp->next;
                    deleteTail(l, i);
                    return;
                }
                del = temp;
                temp = temp->next;
                del->next->prev = del->prev;
                del->prev->next = del->next;
                delete del;
            } else {
                temp = temp->next;
            }
        } while ( temp->prev != l.tail);
    }

完整的剩余代码:https://pastebin.com/57SeC0uK

EN

回答 1

Stack Overflow用户

发布于 2017-03-29 04:03:47

使用破折号表示空、字段的小写字母和元素指针的大写字母,我们构建一个列表,其中的代码通过pastebin显示:

h:-,t:-

insertHead(1)

h:A,t:A with A:p:-,1,n:-

insertHead(2)

h:B,t:A with A:p:B,1,n:- and B:p:A,2,n:A

这里有一个对称问题。为什么A.n仍然为空?例如,在前向迭代中,它可能很快就会崩溃。你对连续值的关注是有误导性的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43076424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档