203. 移除链表元素

203. 移除链表元素

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。

示例 1:

输入:head = [1,2,6,3,4,5,6], val = 6

输出:[1,2,3,4,5]

示例 2:

输入:head = [], val = 1

输出:[]

示例 3:

输入:head = [7,7,7,7], val = 7

输出:[]

提示:

列表中的节点数目在范围 [0, 104] 内

1 <= Node.val <= 50

0 <= val <= 50


单链表,构建虚拟头结点,因为Golang已经提供了GC机制,所以无需手动删除。

需要注意的就是不能直接拿head遍历,不然最后找不到head的位置了。

go 复制代码
type ListNode struct {
	Val  int
	Next *ListNode
}

// 构建虚拟头结点
func removeElements(head *ListNode, val int) *ListNode {
	dummyhead := &ListNode{0, head}
	cur := dummyhead
	for cur.Next != nil {
		if cur.Next.Val == val {
			cur.Next = cur.Next.Next
		} else {
			cur = cur.Next
		}
	}
	return dummyhead.Next
}
相关推荐
OKkankan20 分钟前
list的使用和模拟实现
数据结构·c++·算法·list
爱吃生蚝的于勒1 小时前
【Linux】零基础学会linux环境基础开发工具使用(yum,vim,makefile,gdb)
linux·服务器·数据结构·c++·蓝桥杯·编辑器·vim
Achou.Wang12 小时前
源码分析 golang bigcache 高性能无 GC 开销的缓存设计实现
开发语言·缓存·golang
Yeats_Liao14 小时前
Go语言技术与应用(二):分布式架构设计解析
开发语言·分布式·golang
蓝婴天使14 小时前
基于 React + Go + PostgreSQL + Redis 的管理系统开发框架
react.js·postgresql·golang
脚踏实地的大梦想家14 小时前
【Go】P6 Golang 基础:流程控制
开发语言·golang
QX_hao14 小时前
【Go】--数组和切片
后端·golang·restful
-睡到自然醒~15 小时前
提升应用性能:Go中的同步与异步处理
开发语言·后端·golang
只吃不吃香菜15 小时前
Go WebSocket 协程泄漏问题分析与解决方案
开发语言·websocket·golang
Chloeis Syntax15 小时前
栈和队列笔记2025-10-12
java·数据结构·笔记·