每日leetcode——203. 移除链表元素
题目
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。
输入: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
输出:[]
思路 【每日leetcode——203. 移除链表元素】删除节点,让该节点的前一个节点,指向它的下一个节点,跳过它自己,达到删除该节点的目的。
设置两个指针,cur指向当前遍历节点,pre指向它的前一个节点
def removeElements(self, head: ListNode, val: int) -> ListNode:
# 设置一个虚拟节点放在头节点前
dummy = ListNode()
dummy.next = head# 设置两个指针 cur指向当前遍历节点,pre指向当前的前一个节点
pre = dummy
cur = headwhile cur:
if cur.val == val:
pre.next = cur.next
else:
pre = cur
cur = cur.nextreturn dummy.next
推荐阅读
- 事件代理——减少事件监听函数
- 每日leetcode——239. 滑动窗口最大值
- 『德不孤』Pytest框架|『德不孤』Pytest框架 — 15、Pytest参数化
- 每日leetcode——232. 用栈实现队列
- LittleTips——显示当前程序快捷键列表
- Element|Element Plus 源码分析——构建与代码风格
- python|数字图像基本操作——图像采样、量化、算术运算、点运算实验结果及分析
- —OpenCV|OpenCV-Python——第7章(图像的基本运算)
- 机器学习 —— 类不平衡问题与SMOTE过采样算法
- OpenCV|OpenCV图像处理和应用—色彩空间与几何变换(一)