链表(虚拟头节点)

devtools/2024/10/24 20:59:01/

链表

移除链表元素

虚拟头节点

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode removeElements(ListNode head, int val) {ListNode danyhead=new ListNode();        //创建一个虚拟节点   danyhead.next=head;             //重新定义头节点ListNode cur = danyhead;         //为了保证头节点数据不变,复制链表为curwhile(cur.next!=null){           //最后一个节点的下一个为nullif(cur.next.val==val){          //cur.next 指向链表中的某个节点,cur.next.val 就是该节点的 val 值。val中存储真实的值    cur.next=cur.next.next;}else{cur=cur.next;}}return danyhead.next;            //很有可能head为我们需要删除的val,所以直接返回虚拟头节点的下一个节点}
}

普通解法

public ListNode removeElements(ListNode head, int val) {while(head!=null && head.val==val) {head = head.next;}ListNode curr = head;while(curr!=null && curr.next !=null) {if(curr.next.val == val){curr.next = curr.next.next;} else {curr = curr.next;}}return head;
}

http://www.ppmy.cn/devtools/128512.html

相关文章

Open3D-Geometry-11:Mesh deformation 网格变形算法

1. as-rigid-as-possible 如果想根据少量约束使三角形网格变形,可以使用网格变形算法。 Open3D 通过SorkineAndAlexa2007实现了 as-rigid-as-possible 方法,优化了以下能量函数 ∑ i ∑ j ∈ N ( i

解锁PDF权限密码

目录 背景: 定义与功能: 过程: 主要功能: 使用方式: 使用限制: 注意事项: 总结: 背景: 前段时间自己设置了PDF文件的许可口令,忘了口令导致自己无法编辑内容等,这…

Java - 人工智能;SpringAI

一、人工智能(Artificial Intelligence,缩写为AI) 人工智能(Artificial Intelligence,缩写为AI)是一门新的技术科学,旨在开发、研究用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统…

【环境搭建】Windows系统中使用VScode在虚拟机ubuntu系统中进行开发的方法

Windows系统中使用VScode在虚拟机ubuntu系统中进行开发的方法 vmware虚拟机ubuntu系统 vmware虚拟机17.5个人版可以免费使用,在官网上下载。前提是需要在官网上注册一下,然后具体的方法可以搜一下。然后下载ubuntu镜像,最好下载22.04的版本…

10. mapreduce实现wordcount

一. mapreduce 概述 mapreduce是一个并行计算框架,它起源于Google的MapReduce论文,它主要用于离线海量数据计算。 优点:海量数据离线处理,开发简单,部署方便缺点:仅适用于批处理,不支持实时数…

push_back和emplace_back

title: push_back和emplace_back date: 2024-10-20 19:29:25 tags: categories: C modern C中提到使用考虑使用置入代替插入,个人理解就是使用考虑使用emplace_back代替push_back操作,那么这两者之间究竟有什么区别,想探究一下 首先这两个函…

基于单片机的搬运机器人控制系统

摘 要: 搬运机器人(transfer robot)是可以进行自动化搬运作业的工业机器人 。 搬运机器人可以通过C 语言编程实现单片机上控制,通过实验和调试,实行机器人的抓放料,也可以实现自己的自行运行。 关键词: 单片机;搬运机器人;调试 0 引 言 单片机又称单片微控制器 , 它…

torch.utils.checkpoint.checkpoint介绍

torch.utils.checkpoint.checkpoint 是 PyTorch 提供的一种内存优化工具,用于在计算图的反向传播过程中节省显存。它通过重新计算某些前向传播的部分,减少了保存中间激活值所需的显存,特别适用于深度模型,如 Transformer 等层数较…