leetcode–Remove Nth Node From End of List

2,368次阅读
没有评论

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.

# 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
版权声明:本站原创文章,由 admin 2017-04-13发表,共计775字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)