我在网上找到一个链表代码。我的问题是在链表中找到中心项最简单的方法是什么?这是密码
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()
遍历列表两次
第一次,跟踪总长度
第二次,到达中间时停止(第一次遍历得到的长度/2)
或者,您可以使用two pointer technique.
编辑:因为在这个链表的特定实现中,大小是一个属性,所以不必遍历整个列表来获得总长度
相关问题 更多 >
编程相关推荐