带表头结点的单链表,其结点的元素值以非递减有序排列,编写一个算法删除该链表中多余的元素值相同的结点

2025-06-22 02:19:53
推荐回答(1个)
回答1:

void substract(Node & h)//h是头结点
{
    Node * p = h.next;//p指向第一个元素节点
    while(p && p->next){//p不是最后一个元素节点
        if(p->data == p->next->data){//p和下一个节点数据相等,则删除下一节点
            Node * temp = p->next;
            p->next = temp->next;
            delete [] temp;
        }else{//不相等则p指向下一节点
            p = p->next;
        }
       
    }
}