[leetcode]19. Remove Nth Node From End of List

Posted alfredsun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[leetcode]19. Remove Nth Node From End of List相关的知识,希望对你有一定的参考价值。

链表题没法在本地打断点调试真的烦。。。不过好在这题简单

注意考虑要去除的元素在正数第一位的情况就好。

 

Runtime: 40 ms, faster than 88.15% of Python3 online submissions forRemove Nth Node From End of List.
Memory Usage: 13.1 MB, less than 64.23% of Python3 online submissions for Remove Nth Node From End of List.
 

Submission Detail

208 / 208 test cases passed.
Status: 

Accepted

Runtime: 40 ms
Memory Usage: 13.1 MB
Submitted: 1 minute ago

 

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
        listval =[]
        temp = head
        ret = head
        while(temp.next != None):
            listval.append(temp.val)
            temp = temp.next
        #lastone
        listval.append(head.val)
        lengthS = len(listval)
        #0
        if lengthS == 0:
            return head
        #1
        if lengthS == 1:
            return []
        #normal
        reverse_n = lengthS+1 -n
        #reverse_n == 1
        if reverse_n ==1:
            return head.next
        for index in range(1,reverse_n):
            if index+1 == reverse_n:
                head.next = (head.next).next
            else:
                head = head.next
        return ret

 

 

16ms:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
        cur = head
        for i in range(n):
            cur = cur.next
        if not cur:
            head = head.next
            return head
        else:
            pre = head
            cur = pre.next
        
        while cur:
            for i in range(n):
                cur = cur.next
            if not cur:
                pre.next = pre.next.next
                return head
            else:
                pre = pre.next
                cur = pre.next

 

以上是关于[leetcode]19. Remove Nth Node From End of List的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode19. Remove Nth Node From End of List

leetcode 19. Remove Nth Node From End of List

LeetCode 19. Remove Nth Node From End of List

[LeetCode] 19. Remove Nth Node From End of List

Leetcode 19. Remove Nth Node From End of List(python)

LeetCode(19) - Remove Nth Node From End of List