1、问题描述

Remove all elements from a linked list of integers that have value val.

Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5

给定一个单链表和一个数值,删除单链表中数据域等于该数值的节点。

2、问题分析

遍历一次链表,找到数据域等于给定数值的链表节点,然后删除之。删除链表的操作,就是被删除链表节点的前驱节点直接指向其后继节点,在C++ 中还要记得 delete被删除的链表。

为了方便处理head节点,可以人为创建一个新节点,新节点的next指向head。

特例是,输入为空时,直接返回NULL。

3、代码

 ListNode* removeElements(ListNode* head, int val) {

         if(head == NULL)
return NULL; ListNode FirstNode();
FirstNode.next = head; ListNode* p = &FirstNode;
while(p != NULL)
{
ListNode* tmp = p->next;
if(tmp != NULL && tmp->val == val )
{
p->next = tmp->next;
delete tmp;
}
else
p= p->next;
} return FirstNode.next; }

leetCode题解之删除单链表中指定的元素的更多相关文章

  1. [LeetCode题解]83. 删除排序链表中的重复元素 | 递归 + 迭代

    方法一:递归 解题思路 通过递归法,每次判断目前头节点与给定的节点是否相等.如是,继续判断下一个节点,否则保存当前头节点,设置 next 指向下次递归得到的节点,然后返回当前节点. 代码 /** * ...

  2. LeetCode - 82、删除排序链表中的重复元素 II

    给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5    输出: 1 ...

  3. LeetCode - 83、删除排序链表中的重复元素

    给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2    输出: 1->2 示例 2: 输入: 1->1->2->3 ...

  4. LeetCode【83. 删除排序链表中的重复元素】

    我最开始的程序是 但是结果

  5. 力扣(LeetCode)删除排序链表中的重复元素II 个人题解

    给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 思路和上一题类似(参考 力扣(LeetCode)删除排序链表中的重复元素 个人题解)) 只不过这里需要用到一个前 ...

  6. LeetCode:删除排序链表中的重复元素【83】

    LeetCode:删除排序链表中的重复元素[83] 题目描述 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2 输出: 1->2 示 ...

  7. LeetCode 82. 删除排序链表中的重复元素 II(Remove Duplicates from Sorted List II)

    82. 删除排序链表中的重复元素 II 82. Remove Duplicates from Sorted List II 题目描述 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中没有 ...

  8. 【python】Leetcode每日一题-删除排序链表中的重复元素

    [python]Leetcode每日一题-删除排序链表中的重复元素 [题目描述] 存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 . 返回同 ...

  9. 【python】Leetcode每日一题-删除排序链表中的重复元素2

    [python]Leetcode每日一题-删除排序链表中的重复元素2 [题目描述] 存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表 ...

随机推荐

  1. PHP中 LFI Local File Include,本地文件包 漏洞

    在allow_url_include=On就是远程文件包含了,假设这里为off,那就只能本地包含了. 1.       包含上传文件 只要目标服务器支持上传,不管是jpg,txt,gif等都可以,在其 ...

  2. ubuntu新建用户不能使用ll等指令,显示出来的信息没有颜色区分的解决方案

    ubuntu利用  useradd -m test -g admin 指令,创建用户test及其工作目录.但是登陆后,会出现不能使用很多指令“比如:ll.显示的信息没有颜色”等等此时   查看该用户的 ...

  3. onclick时间加return和不加return的区别

    JAVASCRIPT在事件中调用函数时用return返回值实际上是对window.event.returnvalue进行设置. 而该值决定了当前操作是否继续.当返回的是true时,将继续操作.当返回是 ...

  4. MJRefresh源码框架分析

    MJRefresh是一款非常优秀的刷新控件.代码简洁,优雅.今天有时间对源代码阅读了一下.对MJRefresh的宏观设计非常赞叹.所谓大道至简就是这样吧.   MJRefresh所采用的主要设计模式非 ...

  5. Chrome 谷歌如何快速实现跨域

    第一步:在你的E盘或者其他盘新建一个文件夹,命名为:E:\MyChromeDevUserData 第二步:找到你的谷歌浏览器快捷图标,鼠标右键选择属性,出现以下界面: 第三步:在目标选项的最后添加:  ...

  6. [codeup] 1943 进制转换

    题目描述 将一个长度最多为30位数字的十进制非负整数转换为二进制数输出. 输入 多组数据,每行为一个长度不超过30位的十进制非负整数.(注意是10进制数字的个数可能有30个,而非30bits的整数) ...

  7. [C语言] 数据结构-离散存储链表定义

    离散存储[链表] 1.定义: n个节点离散分配,彼此通过指针相连 每个节点只有一个前驱节点 只有一个后续节点 首节点没有前驱节点,尾节点没有后续节点 2.专业术语: 首节点:第一个有效节点 尾节点:最 ...

  8. SpringBoot(四) Core Features: Logging

    参考 文档: 26. Logging

  9. Windows应用程序对键盘与鼠标的响应

      编写程序: 设计一个窗口, 当单击鼠标左键时, 窗口中显示"LEFT BUTTON"; 当单击鼠标右键时, 窗口中显示"RIGHT BUTTON"; 当单击 ...

  10. VS2013平台安装Qt插件过程

    1.下载所需安装包: Qt5.3.Qt插件下载地址:http://qt-project.org/downloads. qt-vs-addin-1.1.11-opensource.exe 下载地址:ht ...