<LeetCode><Easy> 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]


相关文章

    无相关信息

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台