【问题标题】:Split Method of Linked Lists链表的拆分方法
【发布时间】:2015-04-19 15:54:17
【问题描述】:

您好,我正在尝试这样做:

• split(theList) - 给定头引用 (theList),将链表分成两半,以创建两个较小的链表。返回从列表的后半部分创建的链表的头引用。假设列表包含至少一个节点。如果链表中有奇数个节点,则可以将多余的节点放在两个新链表中的任何一个中。您的解决方案必须在 O(n) 时间内拆分列表

这是我的代码。我想知道这是否在 O(n) 时间内完成?

def split(theList):
  theList = head
  center = head
  index = 0
  while head:
      if index % 2:
          center = center.next
      head = head.next
      index += 1
  headB = center.next
  center.next = None
  return headB

【问题讨论】:

    标签: python linked-list


    【解决方案1】:

    当然,您基本上是在遍历所有列表元素。您只访问了每个元素一次。所以复杂度是 O(n),列表元素的数量为 n。

    【讨论】:

      猜你喜欢
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 2014-05-30
      • 1970-01-01
      • 2017-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多