本文介绍了无法删除链表中的节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


请帮助我告知编写删除链接列表节点的函数是否存在错误.

Hi ,
Please help me to make me know if there is any bug in writing a function in deleting the nodes of a linked list.

#include <iostream>
#include <cstdlib>


///////////////////////////////////////////////////////////////////////////////////////////
typedef struct Clist                                            // Double linked list    //
{
        struct Clist *Prior;
        char         cByte;
        struct Clist *Next;
} Clist;
///////////////////////////////////////////////////////////////////////////////////////////


void DeleteFrom( Clist** clpInput )
{
        ///////////////////////////////////////////////////////////////////////////////////
        Clist* clpTmpA, * clpTmpB, * clpTmpC;
        ///////////////////////////////////////////////////////////////////////////////////
        clpTmpA = *clpInput;
        while( clpTmpA != NULL )
        {
                clpTmpB = clpTmpA->Next;
                free(clpTmpA->Next);
                clpTmpA = clpTmpB;
        }
}

推荐答案


clpTmpB = clpTmpA->Next;
free(clpTmpA->Next);
clpTmpA = clpTmpB;




to

clpTmpB = clpTmpA->Next;
free(clpTmpA);
clpTmpA = clpTmpB;


这篇关于无法删除链表中的节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-09 14:33