&amp;lt;LeetCode&amp;gt;&amp;lt;Easy&amp;gt; 19 Remove Nth Node From End of List

2015-10-17 19:19:20来源:CSDN作者:awsxsa人点击

Given a linked list, remove the nth node from the end of list and return its head.

For example,

`   Given linked list: 1->2->3->4->5, and n = 2.   After removing the second node from the end, the linked list becomes 1->2->3->5.`

Note:
Given n will always be valid.

Try to do this in one pass.

#Python2   44ms

`# Definition for singly-linked list.# class ListNode(object):#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution(object):    def removeNthFromEnd(self, head, n):        """        :type head: ListNode        :type n: int        :rtype: ListNode        """        if not head:return        if not head.next:return        Nodes=[head,]        while 1:            if Nodes[-1].next:                Nodes.append(Nodes[-1].next)            else:                break        if n==len(Nodes):return Nodes[1]        Nodes[-n-1].next=Nodes[-n].next        return Nodes[0]`

#Python2

`class Solution(object):    def removeNthFromEnd(self, head, n):        """        :type head: ListNode        :type n: int        :rtype: ListNode        """        if not head or not head.next:return        Nodes=[head,]        while Nodes[-1].next:            Nodes.append(Nodes[-1].next)        if n==len(Nodes):return Nodes[1]        Nodes[-n-1].next=Nodes[-n].next        return Nodes[0]`

无相关信息