算法---删除链表倒数第n个元素

给定一个长度大于等于n的链表,删除其倒数第n个元素

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
__title__ = ''
__author__ = 'thinkreed'
__mtime__ = '2017/3/21'

"""


# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def removeNthFromEnd(self, head, n):
        """
        :type head: ListNode
        :type n: int
        :rtype: ListNode
        thanks to https://discuss.leetcode.com/topic/14692/3-short-python-solutions
        """

        #一个快,一个慢
        fast = slow = head
        #先让快的比慢的先走n个
        for _ in range(n):
            fast = fast.next
        #整个链表长度等于n,所以倒数第n个就是头部
        if not fast:
            return head.next
        #当循环结束时,慢指针slow恰好走到倒数第n个
        while fast.next:
            fast = fast.next
            slow = slow.next
        #删除倒数第n个
        slow.next = slow.next.next

        return head

推荐阅读更多精彩内容

  • 1.把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不...
    曲终人散Li阅读 2,916评论 0 19
  • 1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租...
    RichardJieChen阅读 4,549评论 0 12
  • 大学的时候不好好学习,老师在讲台上讲课,自己在以为老师看不到的座位看小说,现在用到了老师讲的知识,只能自己看书查资...
    和珏猫阅读 1,103评论 1 3
  • 1. 链表 链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,...
    Mr希灵阅读 1,139评论 0 20
  • 《战狼2》是由吴京执导的动作、战争、军事类型的电影,由吴京、卢靖姗、弗兰克·格里罗等主演。 讲述了正经历人生最低谷...
    时空说阅读 385评论 0 1
  • 现在钱越来越难,大部分人为了几千工资日夜颠倒,活的心酸了。好辛苦啊。 可是一部分人却越来越多,生活物质越来越多。这...
    罗嗦小窝_tpw_698阅读 122评论 0 0
  • 如果我喜欢你 你却感受不到 就让一切随风而去 如果我喜欢你 已经成为你想挣脱的羁绊 就让思念化为一缕青烟 如果我喜...
    紫色梦苑阅读 79评论 4 3