【问题标题】:Python Linked List Center itemPython 链表中心项
【发布时间】:2018-03-31 00:20:06
【问题描述】:

我在互联网上找到了一个链表代码。我的问题是在链表中找到中心项目的最简单方法是什么?这是代码。

class Node:

   def __init__(self,data,nextNode=None):
       self.data = data
       self.nextNode = nextNode

   def getData(self):
       return self.data

   def setData(self,val):
       self.data = val

   def getNextNode(self):
       return self.nextNode

   def setNextNode(self,val):
       self.nextNode = val

class LinkedList:

   def __init__(self,head = None):
       self.head = head
       self.size = 0

   def getSize(self):
       return self.size

   def addNode(self,data):
       newNode = Node(data,self.head)
       self.head = newNode
       self.size+=1
       return True

   def printNode(self):
       curr = self.head
       while curr:
           print(curr.data)
           curr = curr.getNextNode()

【问题讨论】:

  • idownvotedbecau.se/noattempt 您从互联网上复制代码,当您遇到问题时,您将其外包给互联网,而不是尝试自己解决?这是一个微不足道的问题。给我们看一些代码。 您自己的代码。
  • 你的问题是算法还是python代码?你知道要保留两个迭代器吗?在一个循环中,迭代器 A 走两步,迭代器 B 走一步。重复此操作,直到迭代器 A 到达终点,此时迭代器 B 将走到一半。如果只是 Python 阻碍了你,那么具体是什么让你绊倒了?
  • 首先,我说我在互联网上找到了这段代码。我在编写代码时遇到了麻烦。我是这份工作的新手。谢谢。

标签: python arrays list


【解决方案1】:

遍历列表两次。

第一次,跟踪总长度。

第二次,到中间就停下(第一次遍历得到的长度/2)。

或者,您可以使用two pointer technique.

编辑:由于大小是此特定链表实现中的一个属性,因此您不必遍历整个列表即可获得总长度。

【讨论】:

  • 感谢您的回答,但我不知道编写此代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-13
相关资源
最近更新 更多