问题

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3826 访问。

删除链表中等于给定值 val 的所有节点。

输入: 1->2->6->3->4->5->6, val = 6

输出: 1->2->3->4->5


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

Input:  1->2->6->3->4->5->6, val = 6

Output: 1->2->3->4->5


示例

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3826 访问。

public class Program {public static void Main(string[] args) {var head = new ListNode(1) {next = new ListNode(2) {next = new ListNode(6) {next = new ListNode(3) {next = new ListNode(4) {next = new ListNode(5) {next = new ListNode(6)}}}}}};var res = RemoveElements(head, 6);ShowArray(res);Console.ReadKey();}private static void ShowArray(ListNode list) {var node = list;while(node != null) {Console.Write($"{node.val} ");node = node.next;}Console.WriteLine();}private static ListNode RemoveElements(ListNode head, int val) {//创建一个根节点,以便统一处理所有节点,否则需要单独处理边界,会很麻烦var virtualHead = new ListNode(0);virtualHead.next = head;//临时节点,用于存放每次移动的指针var next = virtualHead;while(next.next != null) {if(next.next.val == val) {//找到需要删除的节点,将指针往后移动2位next.next = next.next.next;} else {//找不到,直接往后移动指针next = next.next;}}//返回除了根节点之外的所有节点return virtualHead.next;}public class ListNode {public int val;public ListNode next;public ListNode(int x) { val = x; }}}

以上给出1种算法实现,以下是这个案例的输出结果:

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3826 访问。

1 2 3 4 5

分析:

显而易见,以上算法的时间复杂度为: 

C#LeetCode刷题之#203-删除链表中的节点(Remove Linked List Elements)相关推荐

  1. C#LeetCode刷题之#237-删除链表中的节点(Delete Node in a Linked List)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3832 访问. 请编写一个函数,使其可以删除某个链表中给定的(非末 ...

  2. C#LeetCode刷题之#160-相交链表(Intersection of Two Linked Lists)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3824 访问. 编写一个程序,找到两个单链表相交的起始节点. 例如 ...

  3. leetcode算法题--两两交换链表中的节点★

    原题链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs/ 1.双指针法 ListNode* swapPairs(ListNode* head ...

  4. 【刷题】2.BM3 链表中的节点每k个一组翻转

    题目 分析 判断是否为k长链表 单节点处理 k长链表反转 链接前后链表 代码 import java.util.*;/** public class ListNode {* int val;* Lis ...

  5. leetcode刷题:删除链表中的节点

    题目: 分析: 删除链表中的节点的常见的方法是定位到待删除节点的上一个节点,修改上一个节点的 \textit{next}next 指针,使其指向待删除节点的下一个节点,即可完成删除操作. 这道题中,传 ...

  6. LeetCode实战:删除链表中的节点

    背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Write a fun ...

  7. 237. 删除链表中的节点【我亦无他唯手熟尔】

    237. 删除链表中的节点 请编写一个函数,用于 删除单链表中某个特定节点 .在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 . 题目数据保证需要删除的节点 不 ...

  8. LeetCode 24:两两交换链表中的节点、1662. 检查两个字符串数组是否相等

    今天一道是单链表一道是String类的 一:LeetCode 24:两两交换链表中的节点 先来看一下题目信息 索引 题目意思就是把一个链表中的两两节点进行交换,题目给的例子是4个节点,是偶数个,两两节 ...

  9. 237. 删除链表中的节点 golang

    删除链表的节点 https://leetcode-cn.com/problems/delete-node-in-a-linked-list 最优解 把下一个节点的值移动到当前删除节点,然后更改当前节点 ...

最新文章

  1. 学习java三个技巧要知道!
  2. HDU(1847)Good Luck in CET-4 Everybody!
  3. ValueError: XPath error: Invalid expression in //*[@id=‘info‘]/div/p[1]/test()_Python系列学习笔记
  4. 《HTML、CSS、JavaScript 网页制作从入门到精通》——第6章 使用表格
  5. 计算机主机组成实验,计算机组成原理实验-运算器组成实验报告
  6. linux php7.0安装debug,ubuntu 安装php7.0 xdebug
  7. 鸿蒙初开踏青时主要内容,鸿蒙初开踏青时
  8. flask 启动服务
  9. 第一个C#程序—C#基础回顾
  10. 21天Jmeter打卡合集之从入门到精通
  11. Vysor 2.1.x Pro使用
  12. Linux中Apache服务器的简单配置
  13. python可以代替按键精灵吗_Python 假装自己是按键精灵
  14. 局域网 访问计算机 软件,局域网查看工具
  15. 【Android容器组件—AdapterView】
  16. session 的工作原理?
  17. 拼多多砍价群大王:拼多多为什么3年就能上市?
  18. 也谈谈我对腾讯“抄袭”的认识
  19. 相声评书戏曲大全(安卓)
  20. CentOS 7 安装 Mysql 8.0 教程

热门文章

  1. Ubuntu下安装visual studio code
  2. 【Linux】Ubuntu下C语言访问MySQL数据库入门
  3. git-分支管理-增加删除切换合并操作
  4. linux-目录查询命令-目录内容查看-ls查询-tree查询-查询类容分类-不同颜色对应不同类型
  5. python-练习-查找匹配-模拟数据库的查找-小例子
  6. python-turtle库-01
  7. python使用print不换行
  8. node.js之require
  9. hive mysql元数据表说明
  10. 自动化持续集成Jenkins