链表插入,删除,链表有头节点。

在第一个值为a前插入b。
void insert_node(node *head,int a,int b){     
    node *t=head;
    while(t->next!=nullptr){
        if(t->next->x==a){
            break;
        }
        t=t->next;
    }
    if(t->next==nullptr){
        node *tt=new node();
        tt->x=b;
        t->next=tt;
    }
    else{
        node *tt=new node();
        tt->x=b;
        tt->next=t->next;
        t->next=tt;
    }
}

删除第一个值为b的节点。
void delete_node(node *head,int b){
    node *t=head;
    while(t->next!=nullptr){
        if(t->next->x==b){
            break;
        }
        t=t->next;
    }
    if(t->next!=nullptr){
        node *tt=t->next;
        if(tt->next==nullptr){
            t->next=nullptr;
            free(tt);
        }
        else{
            t->next=tt->next;
            free(tt);
        }
    }
}
全部评论

相关推荐

仁者伍敌:实习生要工作经验,工作要实习经验
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务