題目

  • 題目連結
  • 目標函式 : deleteNode(grid, k)
    • ListNode 格式 :
      1
      2
      3
      4
      class ListNode(object):
      def __init__(self, x):
      self.val = x
      self.next = None
    • Input : node: ListNode
    • Output : void, Do not return anything, modify node in-place instead.

解題概念

  • 題意 : 給予一 Linked List 上的節點 node,將其刪除後把頭尾相接

我的寫法

  • 想法 :
    • node.nextval 複製到 node 上,再把 node 往後移,以此類推
    • 快遇到結尾時,再做特殊處理
  • 程式碼 :
    1
    2
    3
    4
    5
    6
    7
    while node.next != None:
    node.val = node.next.val
    if node.next.next == None: //快遇到結尾
    node.next = None
    return
    else:
    node = node.next
  • 成效 :
    • Time Complexity : $\color{DB4D6D}{O(n)}$
    • Runtime: 42 ms (faster than 60.94%)
    • Memory Usage: 13.6 M (less than 81.20%)

解答 or 其他優秀寫法

  • 想法 :
    1. 原本的樣子
    2. 複製 val
    3. 處理連接線
  • 程式碼 :
    1
    2
    node.val = node.next.val
    node.next = node.next.next
  • 成效 :
    • Time Complexity : $\color{DB4D6D}{O(1)}$
    • Runtime: 43 ms (faster than 57.94%)
    • Memory Usage: 13.8 M (less than 26.42%)