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

网站推广上首页天津网站快速排名提升

网站推广上首页,天津网站快速排名提升,小视频制作,上海企业网站建设电话一、题目 给你一个链表,删除链表的倒数第 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://www.yayakq.cn/news/460322/

相关文章:

  • 关闭网站跳转代码3万元简装修大全
  • 怎样查看别人的网站是怎么建设网站建设方案对比报告
  • asp.net的网站开发wordpress插件官网
  • 怎样做关键词网站金隅嘉华大厦网站建设公司
  • 安阳市建设工程招标投标协会网站新手建网站
  • 赣州网站建设优化服务海口网站排名推广
  • 牛搬家网企业网站排名谁家的网站做的比较好
  • dw做的网站怎么全屏163企业邮箱登陆口
  • 自己建网站需要服务器么北京建设银行分行招聘网站
  • 网站后台修改内容看不见了wordpress添加小说
  • 做微信小程序的网站旅游最好的网站建设
  • 四川网站建设制作软件界面设计欣赏
  • 微信订阅号网站开发做网站 就
  • 遵义做网站 0852t什么网站可以做章
  • 网站开发服务外包合同宿迁房产网丫丫
  • 商务网站开发的的基本流程湘潭做网站 磐石网络
  • 企业高端网站网站支付宝接口付费
  • 国内互动网站建设鄞州区建网站外包
  • 移动端公众号网站开发wordpress创建企业邮箱
  • 给一个网站做需求分析wordpress开启redis
  • app开发与网站开发有何不同信用中国官网企业查询
  • 营销网站的优势是什么意思深圳燃气公司网上营业厅
  • 外包建设网站平面设计专业课程有哪些
  • wordpress视频无法播放视频播放seo分析报告
  • 免费网站设计软件国外做问卷调查的网站
  • 国外网站怎么建设办公室设计平面图
  • 论坛网站策划wordpress上传html
  • 郑州有做网站的公司没常见的网站类型有
  • 网站开发需求文档模板带er图湘潭网站建设 要上磐石网络
  • 网站开发和软件网站建设 化工