算法---刪除鏈表倒數第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,362評論 0 19
  • 1 序 2016年6月25日夜,帝都,天下著大雨,拖著行李箱和同學在校門口照了最后一張合照,搬離寢室打車去了提前租...
    RichardJieChen閱讀 5,159評論 0 12
  • 大學的時候不好好學習,老師在講臺上講課,自己在以為老師看不到的座位看小說,現在用到了老師講的知識,只能自己看書查資...
    和玨貓閱讀 1,475評論 1 3
  • 1. 鏈表 鏈表是最基本的數據結構,面試官也常常用鏈表來考察面試者的基本能力,而且鏈表相關的操作相對而言比較簡單,...
    Mr希靈閱讀 1,472評論 0 20
  • 《戰狼2》是由吳京執導的動作、戰爭、軍事類型的電影,由吳京、盧靖姍、弗蘭克·格里羅等主演。 講述了正經歷人生最低谷...
    時空說閱讀 640評論 0 1