移除链表元素-力扣

embedded/2024/10/19 5:27:07/

题目

给你一个链表的头节点 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

答案

递归

java">class Solution {public ListNode removeElements(ListNode head, int val) {if(head == null){return head;}head.next = removeElements(head.next,val);return head.val == val ? head.next : head;}
}

迭代

java">class Solution {public ListNode removeElements(ListNode head, int val) {ListNode dummyHead = new ListNode(0);dummyHead.next = head;ListNode temp = dummyHead;while (temp.next != null) {if (temp.next.val == val) {temp.next = temp.next.next;} else {temp = temp.next;}}return dummyHead.next;}
}

解析

递归

递归方法,先判断如果head到头就往回返,然后判断链表中的值是否与给的值相同,结果给到head.next,最后返回列表

迭代

先让一个结点指向头指针并且再设一个指针等于这个结点,按照指针.next作比较,这样相等的时候,可以删除相等那个,如果直接让指针指向头结点,两个数相同的话,删不了相同值的结点。

一直让temp结点往下比较即可。


http://www.ppmy.cn/embedded/43675.html

相关文章

贪心算法[1]

首先用最最最经典的部分背包问题来引入贪心的思想。 由题意可知我们需要挑选出价值最大的物品放入背包&#xff0c;价值即单位价值。 我们需要计算出每一堆金币中单位价值。金币的属性涉及两个特征&#xff0c;重量和价值。 所以我们使用结构体。 上代码。 #include <i…

905. 按奇偶排序数组 - 力扣

1. 题目 给你一个整数数组 nums&#xff0c;将 nums 中的的所有偶数元素移动到数组的前面&#xff0c;后跟所有奇数元素。 返回满足此条件的 任一数组 作为答案。 2. 示例 3. 分析 开辟一个数组res用来保存操作过后的元素。第一次遍历数组只插入偶数&#xff0c;第二次遍历数组…

flutter性能优化-UI重绘

在Flutter中&#xff0c;可以采取以下几种方法来减少UI的重绘&#xff1a; 使用setState()方法进行批量更新&#xff1a;当需要更新多个UI元素时&#xff0c;可以使用setState()方法进行批量更新&#xff0c;而不是在每次更新时都调用setState()。这样可以减少重绘的次数&#…

有哪些藏文翻译器在线翻译?工具分享

有哪些藏文翻译器在线翻译&#xff1f;随着全球化的推进&#xff0c;语言之间的交流变得越来越重要。藏语作为中华民族的重要语言之一&#xff0c;其翻译需求也日益增加。为了满足这一需求&#xff0c;市场上涌现出了多款藏文翻译器在线翻译工具&#xff0c;它们以其高效、准确…

Ingress controller:Kubernetes 的瑞士军刀

原文作者&#xff1a;Brian Ehlert of F5 原文链接&#xff1a;Ingress controller&#xff1a;Kubernetes 的瑞士军刀 转载来源&#xff1a;NGINX 中文官网 NGINX 唯一中文官方社区 &#xff0c;尽在 nginx.org.cn 许多人认为 Ingress controller&#xff08;Ingress 控制器&…

SpringBoot 微服务中怎么获取用户信息 token

SpringBoot 微服务中怎么获取用户信息 token 当我们写了一个A接口&#xff0c;这个接口需要调用B接口&#xff0c;但是B接口需要包含请求头内容&#xff0c;比如需要用户信息、用户id等内容&#xff0c;由于不在同一个线程中&#xff0c;使用ThreadLocal去获取数据是无法获取的…

Git常用命令操作

删除git记录,删除项目根目录下的隐藏文件夹.git/ rm -rf .git 初始化仓库 git init 添加到缓冲区 git add controller/* 提交缓冲区文件 git commit -m "新增接口" 拉取远程仓库的 master分支最新代码&#xff0c;并合并到当前所在的分支中 git pull origin…

智慧仓储新动力:EasyCVR+AI视频智能监管系统方案助力仓储安全高效管理

一、背景 随着物流行业的快速发展和智能化水平的提升&#xff0c;智慧仓储视频智能监管系统已成为现代仓储管理的重要组成部分。本系统通过综合运用物联网、视频分析、边缘计算等技术手段&#xff0c;实现对仓储环境的全面监控、智能分析和高效管理。 TSINGSEE青犀视频汇聚Ea…