博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 19. Remove Nth Node From End of List
阅读量:4619 次
发布时间:2019-06-09

本文共 840 字,大约阅读时间需要 2 分钟。

问题链接

题目解析

给定链表,将倒数第n个元素删除后返回新的链表。

解题思路

这应该是一道简单题,不知道为什么是Medium。题目中已经给了提示,遍历一次!本题中由于不知道链表有多长,如果想知道的话需要遍历一次,找到倒数第n个元素有需要遍历一次,不符合题意。

使用两个指针cur、pre,其中cur比pre先行n步,当cur到达末尾时,pre所指的下一个元素即是要删除的元素。

时间复杂度:\(O(n)\)

参考代码

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* removeNthFromEnd(ListNode* head, int n) {        ListNode *cur = head, *pre = head;        while(n--) cur = cur->next;        if(cur == NULL) return head->next;        while(cur->next) {            pre = pre->next;            cur = cur->next;        }        pre->next = pre->next->next;        return head;    }};

本文版权归作者AlvinZH和博客园所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.


转载于:https://www.cnblogs.com/AlvinZH/p/8615166.html

你可能感兴趣的文章
BBC-The Race and a quiz
查看>>
大端小端
查看>>
IntelliJ IDEA 把java项目导出成可执行的jar
查看>>
DynamicReports
查看>>
鼠标经过图像改变实现
查看>>
二分查找法
查看>>
Spring3升级到Spring4时, 运行时出现找不到MappingJacksonHttpMessageConverter的情况
查看>>
详解缓冲区溢出攻击以及防范方法
查看>>
分布式事务解决方案(一) 2阶段提交 & 3阶段提交 & TCC
查看>>
android之网格布局和线性布局实现注册页面
查看>>
BZOJ 1014: [JSOI2008]火星人prefix( splay + hash )
查看>>
安装ejabberd2并配置MySQL为其数据库
查看>>
angular repeat
查看>>
android 图片圆角化控件
查看>>
java第三次作业
查看>>
HP Jack介绍
查看>>
敏捷软件开发(3)---COMMAND 模式 & Active Object 模式
查看>>
poj 1062 昂贵的聘礼 解题报告
查看>>
get the page name from url
查看>>
visual studio中csproj文件中的project guid改为小写 ( notepad++ 正则)
查看>>