单链表删除操作:
如何遍历一个单链表,把符合条件的结点删除???

解决方案 »

  1.   

    我实在没有理解lz的意思
    是自己做的链表?还是mfc里的?
      

  2.   

    如果要删头,还得把下一个作为头,它是HASH表的一个索引值
      

  3.   

    不就在原来基础上的循环里面不用break,然后判断是否到头就可以了吗?
      

  4.   

    和结构无关:
    例如:
    pNode=(CMI_FlowManage *)G[uiIndex];//一个链表头结点
                pTempNode=pNode->next;
    while(pTempNode!=NULL)
    {
       if(符合条件)
       {
           如何删除
           继续下个结点

       }
    }
    注意当头结点满足条件如何删除???(链表中有可能都满足条件,此条件不用考虑)
      

  5.   

    你直接在while里用pNode,不要用pTempNode就是从头节点开始了
    pTempNode = pNode;/*用pTempNode保存当前节点的前一个节点,因为当前节点可能要删除,就利用前一个节点直接=当前节点的下一个节点就可以删除当前节点*/
    pTempNode = pNode;
    while(pNode)
    {
    if(符合条件)
    if(pNode->next!=NULL)
    {
    pTempNode->next=pNode->next;
    delte pNode;
    }
    else
    pTempNode->next = NULL;


    pTempNode=pNode;
    pNode=pNode->next;
    }