19. 删除链表的倒数第N个节点
19. 删除链表的倒数第N个节点
题意
删除链表的倒数第N个结点
解题思路
先让快结点移动n个位置,接着再让慢结点和快结点同时移动,发现出慢结点就是要删除的结点,将前结点指向删除结点的下一个结点即可;
实现
class Solution(object):
def removeNthFromEnd(self, head, n):
"""
执行用时 : 36 ms, 在Remove Nth Node From End of List的Python提交中击败了12.60% 的用户
内存消耗 : 11.7 MB, 在Remove Nth Node From End of List的Python提交中击败了0.91% 的用户
:type head: ListNode
:type n: int
:rtype: ListNode
"""
slow = fast = head
# 因为题目说明了n是个正常值,也就是肯定会是[1, len(head)]
# 加个异常捕获,如果链表长度不够n,则直接返回头结点
try:
while n:
fast = fast.next
n -= 1
except:
return head
# 如果快结点为空,说明肯定是要删除倒数第len(head)个结点,也就是头结点
if not fast:
return head.next
prev = slow
while slow and fast:
prev = slow
slow = slow.next
fast = fast.next
prev.next = slow.next
return head
19. 删除链表的倒数第N个节点的更多相关文章
- Java实现 LeetCode 19删除链表的倒数第N个节点
19. 删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当 ...
- [LeetCode] 19. 删除链表的倒数第N个节点
题目链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ 题目描述: 给定一个链表,删除链表的倒数第 n 个节点, ...
- Leetcode题库——19.删除链表的倒数第 n 个节点【##】
@author: ZZQ @software: PyCharm @file: removeNthFromEnd.py @time: 2018/9/26 21:56 说明:给定一个链表,删除链表的倒数第 ...
- leetcode 19. 删除链表的倒数第N个节点 JAVA
题目: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链 ...
- 【leetcode】19. 删除链表的倒数第N个节点
描述 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变 ...
- LeetCode 19——删除链表的倒数第 N 个节点
1. 题目 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后 ...
- [LeetCode] 19. 删除链表的倒数第N个节点 ☆☆☆
描述 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表 ...
- LeetCode 19——删除链表的倒数第N个节点(JAVA)
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 ...
- leetcode题目19.删除链表的倒数第N个节点(中等)
题目描述: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后 ...
随机推荐
- scala 基础知识总结
在最开始处引入 log 相关的 包 import org.apache.log4j.{Logger,Level} 在需要屏蔽日志输出的地方加上这两行代码 // 屏蔽不必要的日志显示在终端上 Logge ...
- 20155203 2016-2017-4 《Java程序设计》第6周学习总结
20155203 2016-2017-4 <Java程序设计>第6周学习总结 教材学习内容总结 重载和覆盖:重载是将函数的名称和方法不变(名称可以有一些变动),只改变参数列表,相当于和原来 ...
- js和jquery使按钮失效为不可用状态的方法
设置disabled属性为true即为不可用状态. html代码: <input type="button" value="提交" id="bt ...
- bzoj3029 守卫者的挑战 (多维dp)
题面: 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜寻着关押applepi的监狱的所在地.突然,眼前一道亮光闪过."我,Nizem,是黑魔法圣殿的守卫者.如果你能通过我的挑 ...
- decimal模块
简介 decimal意思为十进制,这个模块提供了十进制浮点运算支持. 常用方法 1.可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确. 2.要从浮点数据转换为De ...
- 【Python】Flask系列-模板笔记
Jinja2模板 Jinja2模板传参 如何渲染模板: 模板放在templates文件夹下 从flask中导入render_template函数. 在视图函数中,使用render_template函数 ...
- 深入理解C语言的函数调用过程 【转】
转自:http://blog.chinaunix.net/uid-25909619-id-4240084.html 原文地址:深入理解C语言的函数调用过程 作者:wjlkoorey258 本文 ...
- RESET MASTER和RESET SLAVE使用场景和说明【转】
[前言]在配置主从的时候经常会用到这两个语句,刚开始的时候还不清楚这两个语句的使用特性和使用场景. 经过测试整理了以下文档,希望能对大家有所帮助: [一]RESET MASTER参数 功能说明:删除所 ...
- Ansible Tower系列 三(使用tower执行一个任务)【转】
创建playbook Tower playbook 项目默认存在 /var/lib/awx/projects/ su - awx cd projects/ mkdir ansible-for-devo ...
- oracle日期、转换函数
转换函数 日期类型转换成字符类型 select to_char(sysdate) s1, --14-3月 -16 to_char(sysdate, 'yyyy-mm-dd') s2, - ...