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
}
相关推荐
benchmark_cc6 小时前
批量获取股票数据后,如何统一转换成 DataFrame?从数据结构到量化研究的完整实践
数据结构·python·数据分析·量化交易·股票数据·quantdash
啵啵啵鱼6 小时前
第三章 栈、队列和数组相关结构
java·数据结构·栈·队列
xys_6786 小时前
深挖数据结构:线性表(1)
数据结构
mmmmath_316 小时前
LeetCode.104.二叉树的最大深度
数据结构·leetcode
倔强的小石头_1 天前
从Go+SQLite编译到浏览器开局:landlord部署、AI对局与固定地址实战
人工智能·golang·sqlite
信奥卷王1 天前
[GESP202509 六级] 划分字符串(含视频)
数据结构·算法
m0_752035631 天前
Redis 数据结构总结
数据结构·数据库·redis
tachibana21 天前
Go 语言的 Map 是否是并发安全的?
开发语言·数据结构·后端·golang·go·语言
后除1 天前
Go 实战: 使用 Wails v2.15 构建轻量级的桌面应用 - 仿微信登录界面
开发语言·微信·golang
看浪的路人1 天前
第8讲:RAG 生产化——Go 实现亿级向量召回 + 混合检索 + 重排序 Pipeline
开发语言·后端·golang