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

做甜品台的网站同城推广平台

做甜品台的网站,同城推广平台,保定seo排名外包,事业单位网站登录模板题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1], n 1 输出:[]示例 3&#…

题目

给你一个链表,删除链表的倒数第 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]

思路一:计算链表长度

我们首先从头节点开始对链表进行一次遍历,得到链表的长度 L。随后我们再从头节点开始对链表进行一次遍历,当遍历到第 L−n+1 个节点时,它就是我们需要删除的节点。

为了与题目中的 n 保持一致,节点的编号从 1 开始,头节点为编号 1 的节点。

为了方便删除操作,我们可以从哑节点开始遍历 L−n+1 个节点。当遍历到第 L−n+1 个节点时,它的下一个节点就是我们需要删除的节点,这样我们只需要修改一次指针,就能完成删除操作。

/*** 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 removeNthFromEnd(ListNode head, int n) {ListNode dummy = new ListNode(0,head);//创建虚拟节点,直接将其放在头结点前int length = getLength(head);//调用getLength算法来对链表进行计算链表长度ListNode cur = dummy;//定义当前指针for(int i = 1;i < length - n + 1;i++){//下标从1开始,结束在下标倒数n之前一位cur = cur.next;}cur.next = cur.next.next;//直接删除return dummy.next;//返回虚拟节点下一个}public int getLength(ListNode head){//计算链表长度算法int length = 0;while(head != null){//结束条件为当前节点为空++length;head = head.next;}return length;}
}

思路二:栈

我们也可以在遍历链表的同时将所有节点依次入栈。根据栈「先进后出」的原则,我们弹出栈的第 n 个节点就是需要删除的节点,并且目前栈顶的节点就是待删除节点的前驱节点。这样一来,删除操作就变得十分方便了。

/*** 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 removeNthFromEnd(ListNode head, int n) {ListNode dummy = new ListNode(0,head);//创建虚拟节点Deque<ListNode> stack = new LinkedList<ListNode>();//创建栈ListNode cur = dummy;//定义当前指针while(cur != null){stack.push(cur);//将链表放入栈中cur = cur.next;}for(int i = 0;i < n;i++){//删除倒数第N个结点,i=0到n-1stack.pop();//弹出栈的顶部}ListNode prev = stack.peek();//倒数第N个结点的前一个结点prev.next = prev.next.next;//直接删除return dummy.next;}
}

http://www.dtcms.com/wzjs/365771.html

相关文章:

  • 网站怎么做海外推广爱站网反链查询
  • 门户网站建设价格广西南宁市有公司网站设计
  • 清理网站后台缓存百度数据中心
  • Php做网站创业北京朝阳区疫情最新情况
  • .net网站做优化网站媒体推广方案
  • java直播网站怎么做免费网站排名优化软件
  • 艾迪网络专业的网站建设公司东莞做网站的公司有哪些
  • 创新的医疗网站建设昆明网站seo服务
  • 做视频网站需要哪些技术淘宝seo推广优化
  • 保健品做哪个网站好百度搜索收录
  • 网站建设对接模版推广软件赚钱的平台
  • 用手机怎么做网站谷歌商店下载
  • 做菠菜网站代理谷歌paypal官网注册入口
  • 温州品牌网站建设无排名优化
  • 网站标题主关键词前端seo是什么
  • WordPress网站主题升级泉州关键词搜索排名
  • 怎么做网站数据库英文seo外链发布工具
  • 做搬家服务网站问卷调查的目的网站优化最为重要的内容是
  • 学习网站建设要报班吗免费投放广告的平台
  • 珠海营销型网站哪家好国内十大软件测试培训机构
  • 营销型网站建设 上海网站建设技术外包
  • b2c平台网站建设seo去哪里培训
  • 中国建设电工立网站seo网络推广知识
  • 网上代办公司注册福州seo推广
  • 网站做半透明度的优势网络舆情分析报告
  • 网站备案登记查询免费正规的接单平台
  • 网站服务器租免费域名邮箱
  • 网站建设 技术要求长春做网站推荐选吉网传媒好
  • 网站做下要多少销售管理系统
  • 免费建设网站平台cms自助建站系统