题解 | 牛牛的链表删除

#include <stdarg.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
void sort(int* array, int n) ;

typedef  struct list {
    int number;
    struct list* behind;
} list;


void InitList (list* ptr);
int main() {
    int n, i;
    int x;

    scanf("%d", &n); /*输入数组长度*/
    getchar();
    scanf("%d", &x); /*输入数组长度*/
    getchar();
    if (n == 0) { /*判断数组长度是否合理*/
        return -1;
    }

    int array[100] = { 0 }; /*定义数组*/
    int* p = array; /*定义指针*/

    for (i = 0; i < n; i++) { /*输入n个正整数*/
        scanf("%d", array + i);
        getchar();
    }
    //sort(array,  n);
    list* head = NULL;
    list* link = NULL;
    int k;
    //create list
    for (k = 0; k < n; k++) {
        list* alloc = (list*)malloc(sizeof(list));
        alloc->number = array[k];
        alloc->behind = NULL;

        if (head == NULL) {
            head = alloc;
            link = alloc;
        } else {
            link->behind = alloc;
            link = link->behind;
        }
    }

    list* delete = NULL;
    list* prev = NULL;
    list* last = head;

    while (head != NULL && head->number == x) {
        delete = head;
        head = head->behind;
        free(delete);
    }
    while (last != NULL) {
        if (last->number == x) {
            delete = last;
            prev->behind = last->behind;
            last = last->behind;
            free(delete);
        }
        else {
            prev = last;
            last = last->behind;
        }
    }


    while (head != NULL) {
        printf("%d ", head->number);
        head = head->behind;
    }
    // for (i = 0; i < n; i++) {
    //     printf("%d ", array[i]);
    // }

    return 0;
}



全部评论

相关推荐

02-07 13:42
已编辑
哈尔滨工业大学 C++
求助各位佬,两年制研究生去年刚入学今年就秋招,大厂or国企?一线大城市or成都重庆老家?背景:哈工大软工本,北理工软工专硕,去年9月开学,11月开始去北京字节跳动后端开发实习,技术栈是头条部门服务端golang开发,实习到7月左右会有转正答辩,根据工作量决定是否转正,不确定是否有换base转正本人家乡重庆,对象北理工网安本硕(但我两年制会先毕业一年),也是重庆人,我俩都有川渝base意向(吃得惯,重庆房价低离家近物价低),轻松一点至少晚上可以有时间一块玩玩的想法,我俩都不太喜欢北京,上海杭州深圳也优于北京,最多接受先北京工作两三年去实习这段时间看有些同事也挺累的,十点多下班,活多周末偶尔也有加班,感觉长期待下去没啥晋升会有点累,所以没有特别强烈意愿重庆关注过国家电网,烟草这些国企,不是一个赛道了,工资低一些也确实轻松稳定,六险二金也能拉满,缺点是赚钱只能靠副业了,压力倒是没啥,银行类也有考虑川渝大厂看到有腾讯&nbsp;字节懂车帝&nbsp;华为&nbsp;oppo之类的,也是在考虑范围北京大厂或者别地大厂干几年回去?川渝国企躺平?川渝大厂离家近干几年再看看情况?(但是国企基本只要应届生),很焦虑不知道怎么去准备或者更好的选择,uu们有经验可聊聊吗?万分感谢~!#牛客AI配图神器#&nbsp;3&nbsp;#牛客创作赏金赛#
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务