我在互联网上找到了一个链表代码。我的问题是在链表中找到中心项目的最简单方法是什么?这是代码。
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()
答案 0 :(得分:1)
遍历列表两次。
首次跟踪总长度。
第二次,当你到达中间时停止(从第一次遍历/ 2获得的长度)。
或者,您可以使用two pointer technique.
编辑:由于大小是链接列表的特定实现中的属性,因此您不必遍历整个列表以获得总长度。