当前位置: 首页 > news >正文

牛客华为机试--HJ48 从单向链表中删除指定值的节点C++

题目描述

在这里插入图片描述

示例1

在这里插入图片描述

示例2

在这里插入图片描述

该题的核心是每来一组数据,都要从头开始找,找到数据后再插入。而不是直接在尾部插入数据。

上代码

#include <iostream>
using namespace std;

struct ListNode {
    int val;
    ListNode *next;

    ListNode(int x) : val(x), next(nullptr) {}
};

int main() {
    int n, h;
    cin >> n >> h;

    ListNode *head = new ListNode(h);

    for (int i = 1; i < n; i++) {
        int val, after;
        cin >> val >> after;
        ListNode *Temp = head;
        while (Temp != nullptr) {
            if (Temp->val == after) {
                ListNode *NextNode = Temp->next;
                Temp->next = new ListNode(val);
                Temp->next->next = NextNode;
            }
            Temp = Temp->next;
        }
    }

    int k;
    cin >> k;
    while (head != nullptr) {
        if (head->val != k) {
            cout << head->val << " ";
        }
        head = head->next;
    }

    //正常需要补充释放内存代码
}

相关文章:

  • 典型反模式深度解析及重构方案
  • 什么是 Git?为什么要用版本控制?
  • Python爬虫第三战(使用session登录小说网获取书单)
  • 蓝桥备赛指南(14):树的直径与重心
  • 判断矩阵A和矩阵B是否相似?
  • 解决使用PendingIntent.getBroadcast时出现java.lang.IllegalArgumentException异常的问题
  • (四十)Dart 中的空安全(Null Safety)教程
  • Web品质 - 重要的HTML元素
  • Linux 命令清单(Linux Command List)
  • MySQL随机获取记录之方法(The Method of Randomly Obtaining Records in MySQL)
  • 【python3】关于等额本金和等额本息计算
  • Activiti(二)- 基于SpringBoot开发配置activiti相关配置项
  • 深入理解C++面向对象特性之一 多态
  • Linux驱动开发进阶(六)- 多线程与并发
  • Redis到底能不能做主数据库?
  • xv6-labs-2024 lab1
  • QML面试笔记--UI设计篇03导航控件
  • 国内数据安全传送简述
  • python 微信小程序支付、查询、退款使用wechatpy库
  • 神经探针与价值蓝海:AI重构需求挖掘的认知拓扑学
  • 特朗普促卡塔尔说服伊朗放弃核计划,伊朗总统:你来吓唬我们?
  • 泽连斯基:正在等待俄方确认参加会谈的代表团组成
  • 博柏利上财年营收下降17%,计划裁员1700人助推股价涨超18%
  • 因操纵乙烯价格再遭诉讼,科莱恩等四家企业被陶氏索赔60亿
  • 佩斯科夫:若普京认为必要,将公布土耳其谈判俄方代表人选
  • 75万买299元路由器后续:重庆市纪委、财政局、教委联合调查