题解 | #牛牛的链表删除#

牛牛的链表删除

https://www.nowcoder.com/practice/d3df844baa8a4c139e103ca1b1faae0f

#include <stdio.h>

typedef struct Node {
    int val;
    struct Node* next;
}node;

int main() {
    int n, x;
    while (scanf("%d %d", &n, &x) != EOF) { // 注意 while 处理多个 case
        // 64 位输出请用 printf("%lld") to 
        int t;
        node* head = (node*)malloc(sizeof(node));
        node* pre = head;
        for (int i = 0; i < n; i++) {
            scanf("%d", &t);
            if (i==0) {
                head->val  = t;
            } else{
                pre->next = (node*)malloc(sizeof(node));
                pre->next->val = t;
                pre = pre->next;
            }
        }
        pre->next = NULL;
        node* dummy = (node*)malloc(sizeof(node));
        dummy->next = head;
        pre = dummy;
        while(pre->next) {
            if (pre->next->val == x) {
                node* t = pre->next;
                pre->next = t->next;
                free(t);
            } else {
                pre = pre->next;
            }
        }
        while(dummy->next) {
            printf("%d ", dummy->next->val);
            dummy = dummy->next;
        }
    }
    return 0;
}

全部评论

相关推荐

牛客928043833号:在他心里你已经是他的员工了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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