zoukankan      html  css  js  c++  java
  • [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
  • 相关阅读:
    CF666E. Forensic Examination
    bzoj1396 识别子串
    bzoj2839 集合计数
    unknown
    Hibernate中一级缓存和二级缓存
    亲, 我们来再重申一遍"=="和"equals的区别
    BigDecimal类
    序列化详解
    利用简单的参数传递来实现单条查询的easyui-datagrid
    Oracl 动态执行表不可访问,本会话的自动统计被禁止
  • 原文地址:https://www.cnblogs.com/alfredsun/p/10934035.html
Copyright © 2011-2022 走看看