C#LeetCode刷题之#203-删除链表中的节点(Remove Linked List Elements)
问题
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 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)相关推荐
- C#LeetCode刷题之#237-删除链表中的节点(Delete Node in a Linked List)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3832 访问. 请编写一个函数,使其可以删除某个链表中给定的(非末 ...
- C#LeetCode刷题之#160-相交链表(Intersection of Two Linked Lists)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3824 访问. 编写一个程序,找到两个单链表相交的起始节点. 例如 ...
- leetcode算法题--两两交换链表中的节点★
原题链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs/ 1.双指针法 ListNode* swapPairs(ListNode* head ...
- 【刷题】2.BM3 链表中的节点每k个一组翻转
题目 分析 判断是否为k长链表 单节点处理 k长链表反转 链接前后链表 代码 import java.util.*;/** public class ListNode {* int val;* Lis ...
- leetcode刷题:删除链表中的节点
题目: 分析: 删除链表中的节点的常见的方法是定位到待删除节点的上一个节点,修改上一个节点的 \textit{next}next 指针,使其指向待删除节点的下一个节点,即可完成删除操作. 这道题中,传 ...
- LeetCode实战:删除链表中的节点
背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Write a fun ...
- 237. 删除链表中的节点【我亦无他唯手熟尔】
237. 删除链表中的节点 请编写一个函数,用于 删除单链表中某个特定节点 .在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 . 题目数据保证需要删除的节点 不 ...
- LeetCode 24:两两交换链表中的节点、1662. 检查两个字符串数组是否相等
今天一道是单链表一道是String类的 一:LeetCode 24:两两交换链表中的节点 先来看一下题目信息 索引 题目意思就是把一个链表中的两两节点进行交换,题目给的例子是4个节点,是偶数个,两两节 ...
- 237. 删除链表中的节点 golang
删除链表的节点 https://leetcode-cn.com/problems/delete-node-in-a-linked-list 最优解 把下一个节点的值移动到当前删除节点,然后更改当前节点 ...
最新文章
- 学习java三个技巧要知道!
- HDU(1847)Good Luck in CET-4 Everybody!
- ValueError: XPath error: Invalid expression in //*[@id=‘info‘]/div/p[1]/test()_Python系列学习笔记
- 《HTML、CSS、JavaScript 网页制作从入门到精通》——第6章 使用表格
- 计算机主机组成实验,计算机组成原理实验-运算器组成实验报告
- linux php7.0安装debug,ubuntu 安装php7.0 xdebug
- 鸿蒙初开踏青时主要内容,鸿蒙初开踏青时
- flask 启动服务
- 第一个C#程序—C#基础回顾
- 21天Jmeter打卡合集之从入门到精通
- Vysor 2.1.x Pro使用
- Linux中Apache服务器的简单配置
- python可以代替按键精灵吗_Python 假装自己是按键精灵
- 局域网 访问计算机 软件,局域网查看工具
- 【Android容器组件—AdapterView】
- session 的工作原理?
- 拼多多砍价群大王:拼多多为什么3年就能上市?
- 也谈谈我对腾讯“抄袭”的认识
- 相声评书戏曲大全(安卓)
- CentOS 7 安装 Mysql 8.0 教程