news 2026/7/10 11:39:56

删除链表的倒数第n个节点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
删除链表的倒数第n个节点

求解代码

publicListNoderemoveNthFromEnd(ListNodehead,intn){if(head==null||n<=0){returnhead;}// 虚拟头节点:解决删除头节点时无前驱的边界问题ListNodedummy=newListNode(-1);dummy.next=head;ListNodepre=dummy;ListNodefast=head;ListNodeslow=head;// 快指针先单独移动n步for(inti=0;i<n;i++){// 若fast已为null,说明n>链表长度,无节点可删,直接返回原链表if(fast==null){returndummy.next;}fast=fast.next;}// 快慢指针同步移动,直到快指针到链表末尾(fast=null)while(fast!=null){fast=fast.next;// 快指针先后移pre=slow;// 把pre更新为当前的slow(此时slow还没动,pre"记住"了slow现在的位置)slow=slow.next;// slow再后移(此时pre已经是slow移动后的上一个节点)}// 执行删除操作:让前驱节点的next跳过slow,指向slow的下一个节点pre.next=slow.next;// 返回新链表头returndummy.next;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 8:20:08

两个链表的第一个公共结点

求解代码 public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {// 初始化两个临时指针&#xff0c;分别指向两个链表的头节点ListNode temp1 pHead1;ListNode temp2 pHead2;// 只要两个指针不指向同一个节点&#xff0c;就继续遍历while (temp1 ! temp2…

作者头像 李华
网站建设 2026/7/1 8:47:46

二分搜索树的特性

二分搜索树的特性 引言 二分搜索树(Binary Search Tree,BST)是一种常见的树形数据结构,在计算机科学中有着广泛的应用。它是一种特殊的二叉树,具有以下特性:每个节点都有一个键值,左子树中的所有键值都小于该节点的键值,右子树中的所有键值都大于该节点的键值。本文将…

作者头像 李华
网站建设 2026/7/1 12:15:58

SpringBoot 实现任意文件在线预览功能

一 文件在线预览在现代工作与生活环境中&#xff0c;文件共享与查看已经成为日常不可或缺的一部分。不过传统的文件处理方式要求用户下载文件到本地后才能查看&#xff0c;这不仅占用了设备的存储空间&#xff0c;还可能导致文件传播效率低下&#xff0c;甚至存在安全隐患。因此…

作者头像 李华
网站建设 2026/6/6 22:03:11

基于CLARK变换和PARK变换的异步电机FOC控制器simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序或模型 4.系统原理简介 4.1 Clark变换&#xff08;三相→两相静止坐标系&#xff09; 4.2 Park变换(两相静止→两相同步旋转坐标系) 4.3 电流环控制 4.4 Park逆变换(d−q→α−β) 4.5 Clark逆变换(α−β→三相) 5.完整工…

作者头像 李华