链表

#include <iostream>
using namespace std;

// 定义链表结点结构体
struct ListNode {
    int data;           // 数据
    ListNode* next;     // 指向下一个结点的指针
};

int main() {
    int n;
    cin >> n;  // 读取数据个数

    // 创建头结点
    ListNode* head = new ListNode();
    head->next = nullptr;

    // 当前结点指针,用于插入新结点
    ListNode* current = head;

    // 建立链表
    for (int i = 0; i < n; i++) {
        int data;
        cin >> data;  // 读取数据

        // 创建新结点
        ListNode* newNode = new ListNode();
        newNode->data = data;
        newNode->next = nullptr;

        // 将新结点插入到链表尾部
        current->next = newNode;
        current = newNode;
    }

    int m;
    cin >> m;  // 读取欲删除的数据

    // 删除值为 m 的结点
    ListNode* prev = head;  // 前驱结点
    ListNode* curr = head->next;  // 当前结点

    while (curr != nullptr) {
        if (curr->data == m) {
            // 删除当前结点
            prev->next = curr->next;
            delete curr;  // 释放内存
            curr = prev->next;  // 继续检查下一个结点
        } else {
            // 移动到下一个结点
            prev = curr;
            curr = curr->next;
        }
    }

    // 计算删除后的链表长度
    int length = 0;
    curr = head->next;
    while (curr != nullptr) {
        length++;
        curr = curr->next;
    }

    // 输出删除后的链表长度
    cout << length << endl;

    // 输出删除后的链表数据
    curr = head->next;
    while (curr != nullptr) {
        cout << curr->data;
        if (curr->next != nullptr) {
            cout << &quot; &quot;;
        }
        curr = curr->next;
    }
    cout << endl;

    // 释放链表内存
    curr = head;
    while (curr != nullptr) {
        ListNode* temp = curr;
        curr = curr->next;
        delete temp;
    }

    return 0;
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 长得好看会提高面试通过率吗? #
3088次浏览 43人参与
# HR最不可信的一句话是__ #
1014次浏览 32人参与
# 米连集团26产品管培生项目 #
7045次浏览 224人参与
# 春招至今,你的战绩如何? #
14676次浏览 136人参与
# AI面会问哪些问题? #
890次浏览 22人参与
# 你的实习产出是真实的还是包装的? #
2684次浏览 52人参与
# MiniMax求职进展汇总 #
24870次浏览 321人参与
# 沪漂/北漂你觉得哪个更苦? #
1209次浏览 38人参与
# 你做过最难的笔试是哪家公司 #
1123次浏览 20人参与
# AI时代,哪个岗位还有“活路” #
2675次浏览 49人参与
# XX请雇我工作 #
51147次浏览 171人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7965次浏览 43人参与
# 简历第一个项目做什么 #
32067次浏览 357人参与
# 简历中的项目经历要怎么写? #
310896次浏览 4257人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152823次浏览 888人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187553次浏览 1123人参与
# AI时代,哪些岗位最容易被淘汰 #
64520次浏览 864人参与
# 如果重来一次你还会读研吗 #
229971次浏览 2011人参与
# 投格力的你,拿到offer了吗? #
178209次浏览 889人参与
# 你怎么看待AI面试 #
180643次浏览 1295人参与
# 正在春招的你,也参与了去年秋招吗? #
364139次浏览 2641人参与
# 腾讯音乐求职进展汇总 #
160820次浏览 1114人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务