算法---删除链表倒数第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阅读 3,407评论 0 19
  • 1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租...
    RichardJieChen阅读 5,273评论 0 12
  • 大学的时候不好好学习,老师在讲台上讲课,自己在以为老师看不到的座位看小说,现在用到了老师讲的知识,只能自己看书查资...
    和珏猫阅读 1,494评论 1 3
  • 1. 链表 链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,...
    Mr希灵阅读 1,498评论 0 20
  • 《战狼2》是由吴京执导的动作、战争、军事类型的电影,由吴京、卢靖姗、弗兰克·格里罗等主演。 讲述了正经历人生最低谷...
    时空说阅读 647评论 0 1