lintcode 174. 删除链表中倒数第n个节点

难度:容易

1. Description

174. 删除链表中倒数第n个节点

2. Solution

  • python
    pre_n指向的位置在cur指向位置的前面第n个。
    当cur是链表尾部时,pre_n正好是倒数第n个。
"""
Definition of ListNode
class ListNode(object):
    def __init__(self, val, next=None):
        self.val = val
        self.next = next
"""

class Solution:
    """
    @param head: The first node of linked list.
    @param n: An integer
    @return: The head of linked list.
    """
    def removeNthFromEnd(self, head, n):
        # write your code here
        if n==1:
            if head.next is None:
                return None
            pre_n = head
            cur = head
            for i in range(n):
                cur = cur.next
            while cur.next is not None:
                pre_n = pre_n.next
                cur = cur.next
            pre_n.next = pre_n.next.next
            return head
        pre_n = head
        cur = head
        for i in range(n-1):
            cur = cur.next
        while cur.next is not None:
            pre_n = pre_n.next
            cur = cur.next
        pre_n.val = pre_n.next.val
        pre_n.next = pre_n.next.next
        return head

3. Reference

  1. https://www.lintcode.com/problem/remove-nth-node-from-end-of-list/description?_from=ladder
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,359评论 0 33
  • //leetcode中还有花样链表题,这里几个例子,冰山一角 求单链表中结点的个数----时间复杂度O(n)这是最...
    暗黑破坏球嘿哈阅读 5,454评论 0 6
  • 早两天搭滴滴专车,遇到一哥们,一上车就开始跟我炫富。 “我其实不缺钱,一个月光收房租就有几千。”哥们抬起一只手,扬...
    雨后彩虹fy阅读 1,796评论 1 1
  • 很久没有写东西。 班里有人在做公众号,我看过她写的文字,跟她这个人一样,带着一股英气和暖气。 我之前一直埋怨自己写...
    不渡归人阅读 1,175评论 0 0
  • 这么多年我都是把对自己的认可建立在别人的认同上,也不知从什么时候开始的,这种模式就一直伴随着我,不离不弃。 事...
    叶蓝昕阅读 1,351评论 2 4

友情链接更多精彩内容