标签:ret color 扫描 nod 单链表 tde list int 头结点
//按位序删除(带头结点) bool ListDelete(LinkList &L ,int i,int &e){ if(i<1) return false; LNode *p; //指针p指向当前扫描结点 int j=0; //当前p指向的是第几个结点 P=L; //L指向头结点,头结点是第0个结点,不存放数据 if(p!=NULL&&j<i-1){ //循环找到第i-1个结点 p=p->next; j++; } if(P==NULL) //i值不合法 return false; if(p->next==NULL) //第i-1个结点后已无其它结点 return false; LNode*q=p->next; //令q指向被删除的结点 e=q->data; p->next=q->next; free(q); return true; }
//删除指定结点 bool DeleteNode(LNode *p){ if(p==NULL) return false; LNode *q=p->next; //令q指向*p的后继结点 p->data=p->next->data; //和后继结点交换数据域 p->next=q->next; free(q); return true; }
//如果p结点是最后一个结点,则只能从表头开始依次寻找p的前驱 ,时间复杂度O(n)
标签:ret color 扫描 nod 单链表 tde list int 头结点
原文地址:https://www.cnblogs.com/ikigai18/p/12716135.html