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

LeetCode[中等]

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

思路:

计算链表长度num,num - n就是需要删去结点的索引

其中若删去第一个结点,返回head.next;

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     public int val;
 *     public ListNode next;
 *     public ListNode(int val=0, ListNode next=null) {
 *         this.val = val;
 *         this.next = next;
 *     }
 * }
 */
public class Solution {
    public ListNode RemoveNthFromEnd(ListNode head, int n) {
        int num = 0;
        ListNode temp = head;
        while(temp != null)
        {
            num++;
            temp = temp.next;
        }
        
        int index = num - n;
        if(index == 0)//第一个结点
            return head.next;

        temp = head;
        for(int i = 1; i < index; i++)
            temp = temp.next;
        temp.next = temp.next.next;
        return head;
    }
}

复杂度分析

  • 时间复杂度:O(sz),其中 sz 是链表的长度。最多需要遍历链表两次,删除结点的时间为 O(1)。

  • 空间复杂度:O(1)。


http://www.kler.cn/a/316552.html

相关文章:

  • 实现 MVC 模式
  • 【软件工程】一篇入门UML建模图(类图)
  • 微擎框架php7.4使用phpexcel导出数据报错修复
  • 3D绘制动态爱心Matlab
  • NoSQL数据库与关系型数据库的主要区别
  • 设计模式-七个基本原则之一-迪米特法则 + 案例
  • 迷雾大陆免费辅助:强流派推荐攻略!VMOS云手机自动辅助挂机教程!
  • [JavaEE] TCP协议
  • hql杂谈一
  • 黑马智数Day3
  • C#设计模式之备忘录模式
  • CMake 构建Qt程序弹出黑色控制台
  • vue3+ant design vue 中弹窗自定义按钮设置及以冒号为基准布局
  • IM项目-----语音识别子服务
  • Java笔试面试题AI答之设计模式(4)
  • 进击J7:对于ResNeXt-50算法的思考
  • [深度学习]Pytorch框架
  • 猿大师办公助手在线编辑Office为什么要在客户端电脑安装插件微软Office或金山WPS?
  • 政务安全体系构建中的挑战
  • 使用思科搭建企业网规划训练,让网络全部互通,使用规则提高工作效率。
  • 深入解析数据库DQL语言:查询的艺术
  • 如何在SpringCloud中使用Consul进行服务发现与配置管理
  • Redis的主从模式、哨兵模式、集群模式
  • 电子电气架构 --- 基于ISO 26262的车载电子软件开发流程
  • 基于GIKT深度知识追踪模型的习题推荐系统源代码+数据库+使用说明,后端采用flask,前端采用vue
  • 快速下载Imagenet数据集