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

代码随想录算法训练营第三天 | 链表理论基础 | 203.移除链表元素

  • 感觉上是可以轻松完成的,因为对链接的结构,元素的删除过程心里明镜似的

  • 实际上四处跑气

    • 结构体的初始化好像完全忘掉了,用malloc折腾半天,忘记了用new,真想扇自己嘴巴子到飞起
    • 删除后写一个函数,把链表打印出来,对于有些数据始终报段错误,后来发现是removeElements函数的返回值没有重新给头指针赋值,导致还指向已被删除的空间
  • 现在这些知识点自己还是有些基础的,但完全手生到跟没学一样啊

  • #include <iostream>struct ListNode {int val = 0;ListNode* next;ListNode(): val(0), next(nullptr) {}ListNode(int v): val(v), next(nullptr) {}ListNode(int v, ListNode* _next): val(v), next(_next) {}
    };class Solution {
    public:ListNode* removeElements(ListNode* head, int val) {if (head == nullptr) return nullptr;auto* visualHead = new ListNode(0);visualHead->next = head;for (auto *p = visualHead; p->next != nullptr;) {if (p->next->val == val) {auto* temp = p->next;p->next = p->next->next;delete temp;} else p = p->next;}head = visualHead->next;delete visualHead;return head;}void show(ListNode* head) {for (auto* p = head; p != nullptr; p = p->next)std::cout << p->val << " ";std::cout << std::endl;}
    };int main()
    {int del_val;std::cin >> del_val;ListNode* p = nullptr;for (int val; std::cin >> val; p = new ListNode(val, p));std::cout << del_val << std::endl;Solution s;p = s.removeElements(p, del_val);s.show(p);return 0;
    }
    // 执行后输入5 5 5 3 2 5 5 1 a
    // 第一个5表示要删除的值,最后一个a表示输入结束,一开始会反向生成链表1->5->5->2->3->5->5->5,然后再把5的结点删除
    
  • 测试代码耗时至少二个小时

  • 在测试时发现,对链接的边界处的值设定与安排还是一头雾水,思想深刻度与对链表更精深的理解还不到位

  • 当天其它题目:设计链表

  • 当天其它题目:反转链表

  • 汇总

相关文章:

代码随想录算法训练营第三天 | 链表理论基础 | 203.移除链表元素

感觉上是可以轻松完成的&#xff0c;因为对链接的结构&#xff0c;元素的删除过程心里明镜似的 实际上四处跑气 结构体的初始化好像完全忘掉了&#xff0c;用malloc折腾半天&#xff0c;忘记了用new&#xff0c;真想扇自己嘴巴子到飞起删除后写一个函数&#xff0c;把链表打印…...

1. 机器学习基本知识(5)——练习题(1)

1.7 &#x1f426;‍&#x1f525;练习题&#xff08;本章重点回顾与总结&#xff09; 0.回答格式约定&#xff1a; 对于书本内容的回答&#xff0c;将优先寻找书本内容作为答案进行回答。 书本内容回答完毕后&#xff0c;将对问题进行补充回答&#xff0c;上面分割线作为两个…...

vue 自定义组件image 和 input

本章主要是介绍自定义的组件&#xff1a;WInput&#xff1a;这是一个验证码输入框&#xff0c;自动校验&#xff0c;输入完成回调等&#xff1b;WImage&#xff1a;这是一个图片展示组件&#xff0c;集成了缩放&#xff0c;移动等操作。 目录 一、安装 二、引入组件 三、使用…...

系列3:基于Centos-8.6 Kubernetes使用nfs挂载pod的应用日志文件

每日禅语 古代&#xff0c;一位官员被革职遣返&#xff0c;心中苦闷无处排解&#xff0c;便来到一位禅师的法堂。禅师静静地听完了此人的倾诉&#xff0c;将他带入自己的禅房之中。禅师指着桌上的一瓶水&#xff0c;微笑着对官员说&#xff1a;​“你看这瓶水&#xff0c;它已经…...

Jfinal项目整合Redis

1、引入相关依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version> </dependency><depen…...

在Ubuntu服务器上备份文件到自己的百度网盘

文章目录 概述安装bypy同步文件定时任务脚本 概述 之前自购了一台阿里云服务器&#xff0c;系统镜像为Ubuntu 22.04&#xff0c; 并且搭建了LNMP开发环境&#xff08;可以参考&#xff1a;《Ubuntu搭建PHP开发环境操作步骤(保姆级教程)》&#xff09;。由于项目运行中会产生附…...

Unity 模板测试透视效果(URP)

可以实现笼中窥梦和PicoVR中通过VST局部透视效果。 使用到的Shader: Shader "Unlit/StencilShader" {Properties{[IntRange]_Index("Stencil Index",Range(0,255))0}SubShader{Tags{"RenderType""Opaque""Queue""Geo…...

《计算机视觉证书:开启职业发展新航道》

一、引言 在当今科技飞速发展的时代&#xff0c;计算机视觉技术正以惊人的速度改变着我们的生活和工作方式。从智能手机的人脸识别解锁到自动驾驶汽车的环境感知&#xff0c;计算机视觉技术的应用无处不在。而计算机视觉证书作为这一领域的专业认证&#xff0c;其作用愈发凸显…...

.NET6 WebApi第1讲:VSCode开发.NET项目、区别.NET5框架【两个框架启动流程详解】

一、使用VSCode开发.NET项目 1、创建文件夹&#xff0c;使用VSCode打开 2、安装扩展工具 1>C# 2>安装NuGet包管理工具&#xff0c;外部dll包依靠它来加载 法1》&#xff1a;NuGet Gallery&#xff0c;注意要启动科学的工具 法2》NuGet Package Manager GUl&#xff0c…...

Git-分布式版本控制工具

目录 1. 概述 1. 1集中式版本控制工具 1.2分布式版本控制工具 2.Git 2.1 git 工作流程 1. 概述 在开发活动中&#xff0c;我们经常会遇到以下几个场景&#xff1a;备份、代码回滚、协同开发、追溯问题代码编写人和编写时间&#xff08;追责&#xff09;等。备份的话是为了…...

C++ 第10章 对文件的输入输出

https://www.bilibili.com/video/BV1cx4y1d7Ut/?p147&spm_id_from333.1007.top_right_bar_window_history.content.click&vd_sourcee8984989cddeb3ef7b7e9fd89098dbe8 &#x1f341;&#x1f341;&#x1f341;本篇为贺宏宏老师C语言视频教程文件输入输出部分笔记整理…...

【机器学习】手写数字识别的最优解:CNN+Softmax、Sigmoid与SVM的对比实战

一、基于CNNSoftmax函数进行分类 1数据集准备 2模型设计 3模型训练 4模型评估 5结果分析 二、 基于CNNsigmoid函数进行分类 1数据集准备 2模型设计 3模型训练 4模型评估 5结果分析 三、 基于CNNSVM进行分类 1数据集准备 2模型设计 3模型训练 4模型评估 5结果分…...

android 聊天界面键盘、表情切换丝滑

1、我们在聊天页面时候&#xff0c;往往会遇到&#xff0c;键盘、表情、其他选择切换时候页面会出现掉下来再弹起问题&#xff0c;这是因为&#xff0c;我们切换时候&#xff0c;键盘异步导致内容View高度变化&#xff0c;页面掉下来后&#xff0c;又被其他内容顶起这种很差视觉…...

Web项目图片视频加载缓慢/首屏加载白屏

Web项目图片视频加载缓慢/首屏加载白屏 文章目录 Web项目图片视频加载缓慢/首屏加载白屏一、原因二、 解决方案2.1、 图片和视频的优化2.1.1、压缩图片或视频2.1.2、 选择合适的图片或视频格式2.1.3、 使用图片或视频 CDN 加速2.1.4、Nginx中开启gzip 三、压缩工具推荐 一、原因…...

关于Git分支合并,跨仓库合并方式

关于Git合并代码的方式说明 文章目录 关于Git合并代码的方式说明前情提要开始合并方式一&#xff1a;git merge方式二&#xff1a;git cherry-pick方式三&#xff1a;git checkout Git跨仓库合并的准备事项前提拉取源仓库代码 前情提要 同仓库不同分支代码的合并可直接往下看文…...

[网络] UDP协议16位校验和

16位校验和是udp报头中的一个字段,绝大多数的教材和网课都会忽略这个字段,不去细究,我闲的蛋疼问了问ai,得到了一个答案,故作此文,以证明我爱学习之心惊天地泣鬼神(狗头 ai的回答 仅从作用来说,它会根据整个应用层报文进行运算,生成一个准确的数字,这个数字不能保证唯一性,但根…...

Vue 3 中的 `update:modelValue` 事件详解

在 Vue 3 中&#xff0c;update:modelValue​ 事件通常与 v-model​ 指令一起使用&#xff0c;以实现自定义组件的双向数据绑定。以下是对该事件的详细分析&#xff1a; 事件定义 首先&#xff0c;我们需要在组件中定义 update:modelValue​ 事件。可以使用 defineEmits​ 函…...

vue3+vite+ts 使用webrtc-streamer播放海康rtsp监控视频

了解webrtc-streamer webrtc-streamer 是一个使用简单机制通过 WebRTC 流式传输视频捕获设备和 RTSP 源的项目&#xff0c;它内置了一个小型的 HTTP server 来对 WebRTC需要的相关接口提供支持。相对于ffmpegflv.js的方案&#xff0c;延迟降低到了0.4秒左右&#xff0c;画面的…...

QT数据库(四):QSqlRelationalTableModel 类

关系数据库概念 例如下列departments、majors、studInfo 这 3 个数据表之间存在关系。 主键与外键 标记“**”的是主键字段&#xff0c;标记“*”的是外键字段。主键字段是一个数据表中表示记录唯一性的字段&#xff0c;例如 studInfo 数据表中的 studID 字段。外键字段是与其…...

蓝桥杯刷题——day5

蓝桥杯刷题——day5 题目一题干解题思路一代码解题思路二代码 题目二题干解题思路代码 题目一 题干 给定n个整数 a1,a2,⋯ ,an&#xff0c;求它们两两相乘再相加的和&#xff0c;即&#xff1a; 示例一&#xff1a; 输入&#xff1a; 4 1 3 6 9 输出&#xff1a; 117 题目链…...

RMBG-2.0从零开始:Ubuntu 22.04 + CUDA 12.1完整环境搭建

RMBG-2.0从零开始&#xff1a;Ubuntu 22.04 CUDA 12.1完整环境搭建 想体验一键抠图&#xff0c;把照片背景变得干干净净&#xff1f;今天&#xff0c;我们就来手把手教你&#xff0c;在Ubuntu 22.04系统上&#xff0c;从零开始搭建一个基于RMBG-2.0模型的智能抠图环境。RMBG-…...

ChatGPT AI生成式引擎优化*(GEO)方案

ChatGPT AI生成式引擎优化*&#xff08;GEO&#xff09;方案&#xff1a; 技术支持&#xff1a;拓世网络技术开发工作室 1️⃣ 战略规划阶段 目标明确 内容类型 文本&#xff1a;文章、产品描述、文案、技术文档 图像&#xff1a;营销图片、社交媒体图、设计草图 视频/动画&…...

WinForms界面美化:用SunnyUI的UILight控件做个状态指示灯(附完整代码)

WinForms界面美化实战&#xff1a;用SunnyUI的UILight控件打造专业状态指示灯 在桌面应用开发中&#xff0c;状态指示是用户界面不可或缺的元素。传统的WinForms控件往往显得单调乏味&#xff0c;而SunnyUI的UILight控件为我们提供了一种简单高效的解决方案。这个圆形指示灯控…...

3MF格式与Blender插件实战解决方案:从设计障碍到3D打印全流程优化

3MF格式与Blender插件实战解决方案&#xff1a;从设计障碍到3D打印全流程优化 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 一、问题&#xff1a;当3D打印遭遇"数…...

忍者像素绘卷惊艳作品集:16-Bit复古美学+火之意志主题像素艺术展

忍者像素绘卷惊艳作品集&#xff1a;16-Bit复古美学火之意志主题像素艺术展 1. 像素艺术的革命性突破 忍者像素绘卷代表了当前像素艺术生成技术的巅峰之作。这款基于Z-Image-Turbo深度优化的图像生成工作站&#xff0c;成功将传统忍者文化与现代AI技术完美融合&#xff0c;创…...

十分钟微调Qwen2.5-7B实战:效果立现,适合新手的完整教程

十分钟微调Qwen2.5-7B实战&#xff1a;效果立现&#xff0c;适合新手的完整教程 1. 准备工作与环境介绍 1.1 为什么选择Qwen2.5-7B进行微调 Qwen2.5-7B是阿里云推出的开源大语言模型&#xff0c;7B参数规模在单卡上就能流畅运行。相比全量微调&#xff0c;使用LoRA技术可以在…...

基于Cortex-M3和步进电机的数字钟控制及其语音播报系统设计

一、系统概述 系统以Cortex-M3内核单片机&#xff08;如STM32F103C8T6&#xff09;为核心&#xff0c;融合步进电机精密驱动、实时时钟&#xff08;RTC&#xff09;、语音合成播报三大功能&#xff0c;实现“数字钟精准显示机械指针动态指示定时语音报时”的一体化设计。系统通…...

在Linux中编写shell脚本监听指定端口的实现方式

在Linux中&#xff0c;你可以编写一个shell脚本来监听指定端口。以下是几种实现方式&#xff1a;方法1&#xff1a;使用nc&#xff08;netcat&#xff09;的简单监听脚本1234567891011121314151617181920212223#!/bin/bash# 文件名&#xff1a;port_listener.sh# 检查参数if [ …...

【数据结构与算法】二叉树从建立开始

为什么你学了二叉树却还是不会做题&#xff1f;从“建树”到“解题”的完整思维体系在学习数据结构的过程中&#xff0c;二叉树几乎是每个人都会接触的内容。但一个很现实的问题是&#xff1a;很多人会写遍历&#xff0c;却不会做题。表面上看是代码能力的问题&#xff0c;实际…...

手机号码定位查询工具:3分钟快速部署,轻松查询号码归属地

手机号码定位查询工具&#xff1a;3分钟快速部署&#xff0c;轻松查询号码归属地 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://gitco…...