将单链表转换为循环链表并验证
Converting Single Linklist to circular and verifying
我是数据结构的新手。在学习循环链表时,我无法继续前进,因为我被卡住了,我正在尝试将单链表转换为循环链表,然后对其进行验证。我的程序没有给出输出,任何人都请帮助我。
class Node:
def __init__(self, data):
self.data = data
self.next = None
class Cll:
def __init__(self):
self.head = None
def push(self,data):
new_node = Node(data)
new_node.next = self.head
self.head = new_node
def makeCircular(self):
temp = self.head
while(temp.next != None):
temp= temp.next
temp.next = self.head
def isCircular(self):
temp = self.head
while (temp.next != None):
temp = temp.next
if temp.next == self.head:
return True
else:
return False
def printList(self):
temp = self.head
#print(temp.data)
while(temp!= None):
print(temp.data, end = " ")
temp = temp.next
print("\n")
cll = Cll()
# l
for i in range(5):
cll.push(i)
cll.printList()
cll.makeCircular()
print(cll.isCircular())
你的 isCircular()
方法被破坏了,因为如果它是循环的,那么 temp.next != None
将永远是 True
并且会发生无限循环。
也许可以试试这样的方法:
def isCircular(self):
temp = self.head
while temp.next is not None and temp.next is not self.head:
temp = temp.next
return temp.next is self.head
我是数据结构的新手。在学习循环链表时,我无法继续前进,因为我被卡住了,我正在尝试将单链表转换为循环链表,然后对其进行验证。我的程序没有给出输出,任何人都请帮助我。
class Node:
def __init__(self, data):
self.data = data
self.next = None
class Cll:
def __init__(self):
self.head = None
def push(self,data):
new_node = Node(data)
new_node.next = self.head
self.head = new_node
def makeCircular(self):
temp = self.head
while(temp.next != None):
temp= temp.next
temp.next = self.head
def isCircular(self):
temp = self.head
while (temp.next != None):
temp = temp.next
if temp.next == self.head:
return True
else:
return False
def printList(self):
temp = self.head
#print(temp.data)
while(temp!= None):
print(temp.data, end = " ")
temp = temp.next
print("\n")
cll = Cll()
# l
for i in range(5):
cll.push(i)
cll.printList()
cll.makeCircular()
print(cll.isCircular())
你的 isCircular()
方法被破坏了,因为如果它是循环的,那么 temp.next != None
将永远是 True
并且会发生无限循环。
也许可以试试这样的方法:
def isCircular(self):
temp = self.head
while temp.next is not None and temp.next is not self.head:
temp = temp.next
return temp.next is self.head