Python链表中心项

2024-03-29 11:33:05 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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()

Tags: selfnonenodedatasizereturninitdef
1条回答
网友
1楼 · 发布于 2024-03-29 11:33:05

遍历列表两次

第一次,跟踪总长度

第二次,到达中间时停止(第一次遍历得到的长度/2)

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

编辑:因为在这个链表的特定实现中,大小是一个属性,所以不必遍历整个列表来获得总长度

相关问题 更多 >