19. Remove Nth Node From End of List

来源:互联网 发布:淘宝简易床 编辑:程序博客网 时间:2024/05/17 02:39

19. Remove Nth Node From End of List

Leetcode link for this question

Discription:

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.

Analyze:

Code 1:

# 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        """        front,rear=head,head        while n>0:            n-=1            rear=rear.next        if not rear :            return head.next        while rear.next:             ##            rear=rear.next            front=front.next        front.next=front.next.next   #modify the next attribute of node        return head    

Submission Result:

Status: Accepted
Runtime: 56 ms
Ranking: beats 58.16%

0 0