力扣203题(3)

题目及之前的两种解法大家可以移步到这里:

https://blog.csdn.net/suibiansa_/article/details/145242573?spm=1001.2014.3001.5501

力扣203题------ 移除链表元素-CSDN博客

今天呢我们来写一下第三种解法:

虚拟创建一个头结点

java 复制代码
ListNode first=new ListNode();
first.next=head;
ListNode aa=first;

while(aa.next!=null){
    if(aa.next.val==val){
        aa.next=aa.next.next;
    }else{
        aa=aa.next;
    }
}
return  first.next;

思路解释

这里为什么要创建两个指针?

因为下面while循环会使用指针遍历一次链表,如果我们用一个指针first的话,最后返回值为null。

为什么用第二个指针遍历,最后返回第一个指针的后继依然能够满足题目条件?

因为我们在定义两个指针时,已经让两个指针指向同一个节点位置,当遍历完第二个指针时也相当于便历了第一个,最后仍然返回我们创建的虚拟头结点后继即可。

共勉!

相关推荐
旋生万物2 分钟前
Agent System Prompt 注入螺旋公理:让 AI 推理不跑偏的可复制模板(附完整 Prompt)
人工智能·算法
深圳雨林凯AI17 分钟前
图案裂变的空间关系原理:元素放大为何必然挤压负空间,以及三个可调变量|雨林凯AI技术拆解
人工智能·算法
tellmewhoisi32 分钟前
机器学习:聚类算法
算法·机器学习·聚类
yi0111 小时前
LeetCode 134 加油站:从 双循环暴力 演变到 贪心
linux·算法·leetcode
sogw-三叶草️1 小时前
LeetCode 989. 数组形式的整数加法
数据结构·算法
维克兜率天2 小时前
【维克】均值回归:跌多了会涨,涨多了会跌
开发语言·笔记·python·算法·均值算法·回归·量化
yi0112 小时前
DAY 14: LeetCode 394. 字符串解码|递归和栈到底怎么处理嵌套?
数据结构·笔记·python·算法·leetcode
P.D.Wei2 小时前
[Leetcode 1614] 括号的最大嵌套深度
算法·leetcode·职场和发展
红姐跨境书3 小时前
AI 的底层逻辑:从数据、算法到智能的本质
人工智能·算法
繁华的地方不一定留下你的脚印3 小时前
C++ 算法与 ranges:用 find_if、transform 写清数据处理意图
开发语言·c++·算法