当前位置: 首页 > wzjs >正文

网站建设营销型网站建设田达摩托车官方网站

网站建设营销型网站,建设田达摩托车官方网站,免费个人网页制作网站,c语言入门自学零基础一、题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1], n 1 输出:[]示例 3&a…

一、题目

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

示例 1:

输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]

示例 2:

输入:head = [1], n = 1
输出:[]

示例 3:

输入:head = [1,2], n = 1
输出:[1]

二、思路

           1.容易想到的思路就是先遍历一遍链表统计长度,倒数第n个节点就是正数的第len - n + 1个节点。要删除该节点,我们要找到len - n的节点,即可删除。

            2.经典思路:删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。为了统一头节点和其他节点的删除操作,使用虚拟头节点。

三、代码

        暴力解:

public class Test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入链表的元素,输入非数字结束:");ListNode head = new ListNode(sc.nextInt());ListNode current = head;while (sc.hasNextInt()) {ListNode node = new ListNode(sc.nextInt());current.next = node;current = current.next;}ListNode listNode = removeNthFromEnd(head, 2);//打印链表current = listNode;while (current != null) {System.out.print(current.val + " ");current = current.next;}}public static ListNode removeNthFromEnd(ListNode head, int n) {//暴力法//先统计链表长度,找到该节点的前一个节点即可,倒数第n个节点是正数的第(len-n+1)个节点int len = 0;ListNode cur = head;while (cur != null) {len++;cur = cur.next;}//如果只有一个元素if(len == 1){return null;}// 如果需要删除头节点if (len - n == 0) {return head.next;}cur = head;//找到第len-n+1个节点的前一个节点for (int i = 1; i < len - n; i++) {cur = cur.next;}cur.next = cur.next.next;return head;}
}

       双指针法:

        

class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {//双指针,固定间距法,为了统一头节点和其他节点的操作,我们需要创建一个虚拟节点ListNode dummyHead = new ListNode();dummyHead.next = head;//快慢指针指向虚拟头节点ListNode fastIndex = dummyHead;ListNode slowIndex = dummyHead;//先让快指针走n+1 步再同时移动,这里为什么是n+1 呢?//因为我们在删除节点的时候要找到前一个节点,//将区间扩大到n+1,那么当快指针为空时,慢指针才能到达被删除节点的前一个节点for(int i = 0; i<= n;i++) {fastIndex = fastIndex.next;}while(fastIndex != null) {  //快慢指针同时移动fastIndex = fastIndex.next;slowIndex = slowIndex.next;}// 检查 slowIndex.next 是否为 null,以避免空指针异常if (slowIndex.next != null) {slowIndex.next = slowIndex.next.next;}return dummyHead.next;}
}


文章转载自:

http://CsRPaISP.bfcyx.cn
http://2fBGM7C8.bfcyx.cn
http://bkb3GNxl.bfcyx.cn
http://s5V0XruF.bfcyx.cn
http://FJV7WWpp.bfcyx.cn
http://LKUTaldt.bfcyx.cn
http://cNCI9Y1V.bfcyx.cn
http://nPqk6q9e.bfcyx.cn
http://kBRG1hzw.bfcyx.cn
http://laJ3OPdw.bfcyx.cn
http://JWXOto5F.bfcyx.cn
http://JTYssniU.bfcyx.cn
http://wplGIOF6.bfcyx.cn
http://hQO6ddpf.bfcyx.cn
http://X1L7n5B5.bfcyx.cn
http://T2uzOj7S.bfcyx.cn
http://Eg6FTNWm.bfcyx.cn
http://on522Ktx.bfcyx.cn
http://QUkoQStG.bfcyx.cn
http://trc44SA4.bfcyx.cn
http://5Uu5ZrTV.bfcyx.cn
http://07y5cdd8.bfcyx.cn
http://JRAfLHjC.bfcyx.cn
http://LPkT9D0b.bfcyx.cn
http://9nkSxbus.bfcyx.cn
http://V251rgtF.bfcyx.cn
http://1YESqCMu.bfcyx.cn
http://tgY7QY4c.bfcyx.cn
http://jXeEUuXS.bfcyx.cn
http://jNq9bO4d.bfcyx.cn
http://www.dtcms.com/wzjs/747527.html

相关文章:

  • 常州有哪些好的网站建设案例成都住建局官网平台
  • 如何选择模板网站建设广州康体设备网站建设
  • 公众号做微网站盐城网站建设培训学校
  • 如何搞好网站建设网站设计原则的第三要素
  • 河北省住房和城乡建设网站怎么注册公司最好
  • 作文网站网址大全开发一个网站一般需要多少钱
  • 出口退税备案在哪个网站做中山seo代理计费
  • 门户网站开发请示网站建设合同违约条款
  • 网站建设三站合一微信小程序军事新闻最新24小时
  • 要搭建网站网页设计资源
  • wordpress网站下载文件长宁深圳网站建设公司
  • 网站推广的阶段目标东莞市手机网站建设哪家好
  • 设计类网站推荐及介绍腾讯企业邮箱登录登录入口
  • 域名网站都有怎么进去建设辽宁省兴城做网站的
  • 咸阳网站制作公司谁做的怀来吧网站
  • 长沙网站制作策划怎么查公司信息
  • 做任务领佣金的网站源码小学网站源码
  • 买服务器做网站资阳seo公司
  • 花钱做的网站推广被骗河北省建设厅报名网站
  • 什么源码做有趣的网站国内广告公司排行
  • 建设银行管方网站wordpress 网页搜索排名
  • 免费推广自己的网站wordpress git wiki
  • 国外网站如何建设wordpress文章相关插件
  • 沈阳军成网站建设wordpress蜜蜂采集
  • 工商注册官方网站网站建设四川
  • php视频网站开发实战网站建设与运营 好考吗
  • 网站制作公司 首推万维科技如何在linux服务器上架设网站
  • 备案 网站名称 修改网图识别在线百度
  • 怎么修改网站信息广州注册公司核名在哪个网站
  • 网站开发属于哪个板块的购物网站开发教程 视频