Remove Nth Node From End of List

来源:互联网 发布:js解析复杂json数据 编辑:程序博客网 时间:2024/05/16 15:41

题目:

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:
#     def __init__(self, x):
#         self.val = x
#         self.next = None


class Solution:
    # @param {ListNode} head
    # @param {integer} n
    # @return {ListNode}
    def removeNthFromEnd(self, head, n):
        length = 0
        tmp = head
        while tmp:
            length += 1
            tmp = tmp.next
            
        sentry = ListNode(-1)
        sentry.next=head
        tmp = sentry
        for i in range(length-n):
            tmp=tmp.next
        tmp.next = tmp.next.next
        return sentry.next


0 0
原创粉丝点击