leetcode–Remove Nth Node From End of List

1,839次阅读
没有评论

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

For example,

   Given linked list: <b>1->2->3->4->5</b>, and <b><i>n</i> = 2</b>.

   After removing the second node from the end, the linked list becomes <b>1->2->3->5</b>.

Note: Given n will always be valid. Try to do this in one pass.

# 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 
        """ 
        ncount=0 
        rhead=phead=head 
        while ncount<n: 
            head=head.next 
            ncount+=1 
        if not head: 
            return rhead.next 
        while head.next: 
            phead=phead.next 
            head=head.next 
  
        phead.next=phead.next.next 
         
        return rhead
admin
版权声明:本站原创文章,由admin2017-04-13发表,共计775字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)