首页 > 其他分享 >移除链表元素--力扣

移除链表元素--力扣

时间:2023-01-22 19:33:26浏览次数:37  
标签:结点 slow val -- head fast 链表 移除

 

 观察事例,可以看出输入数据有三种情况,。

1,首先是第一个结点等于val,直接删除结点会影响head的传递,那么我们需要将head调整到值不等于val。这里运用了while,可以设置循环条件,将head->val!=val。(自己思考时想到引用变量,但终究没有这样简便)。

2.当head为空时,直接返回head。

3.当头结点中值不等于val时,经过前面操作的筛选到这里头结点中值肯定不等于val,这里我们设置两个指针slow,fast。

我将slow定义为安全范围,slow所指向的结点中值不等于val;fast定义为去判断下一个结点值是否为val,就是替slow探探路的意思。

指针的赋值可看代码,当fast->val=val时,删除结点,更改slow中储存的地址。删除之后fast到它的下一位,

如果fast->val!=val,可以看做这时fast安全,slow指向fast,fast到它的下一位。

最后返回链表的头指针。

 

标签:结点,slow,val,--,head,fast,链表,移除
From: https://www.cnblogs.com/coolcooldi/p/17064589.html

相关文章

  • cpp operator = aka assignment operator overload
    //model/book.cppvoidbook::operator=(constbook&bk){std::cout<<std::endl<<std::endl<<std::endl<<"Calledoperatorassignmentoverloaded!"<<std::end......
  • 天梯赛练习题L2(031-035)
    L2-031深入虎穴这个题目我疑惑了好久,因为它说只有一个入口,但是却没有告诉我们哪个是入口,并且需要我们找出距离入口最远的那扇门所以我们在做题时要一一判断哪个是入口,......
  • cpp operator override = and ==
    //book.h#pragmaonce#ifndef__book_h__#define__book_h__#include<functional>#include<iostream>classbook{public:book(conststd::uint64_t&idx......
  • Three.js 进阶之旅:新春特典-Rabbit craft go
    声明:本文涉及图文和模型素材仅用于个人学习、研究和欣赏,请勿二次修改、非法传播、转载、出版、商用、及进行其他获利行为。摘要兔年到了,祝大家身体健,康万事顺利。本文内......
  • 动态组件
                 ......
  • 《冬训周报三》
    关于C++中ios::sync_with_stdio(false); 在C++中的输入和输出有两种方式,一种是scanf和printf,另一种是cin和cout,在#include<bits/stdc++.h>这个万能头文件下,这两种方式是......
  • 【java面试题】lock和synchronized有什么区别?
    学习目标:掌握lock与synchronized的区别理解ReentrantLock的公平、非公平锁理解ReentrantLock中的条件变量lock与synchronized的区别有三个层面学习内容:1.......
  • 在虚拟机中安装 Ubuntu 步骤
    在虚拟机中安装Ubuntu步骤安装前的准备和基本安装设置语言环境安装常用软件1.安装前的准备和基本安装1.1安装前的准备访问http://cn.ubuntu.com/download/下载Ubuntu......
  • refresh是什么?Spring refresh的12个步骤
    文章目录​​功能分类​​​​具体步骤​​​​1.prepareRefresh​​​​2.obtainFreshBeanFactory​​​​3.prepareBeanFactory​​​​4.postProcessBeanFactory​​......
  • 17个面向Web 开发人员的杀手级网站,值得你收藏
    保持网站方便可能是最终的生产力技巧,以下是我用来让我的生活更轻松的一些最好的网站。让我们一起来看看它们。1、图片API地址:https://source.unsplash.com/世界上最强大的......