【问题标题】:Converting Single Linklist to circular and verifying将单个链接列表转换为循环并验证
【发布时间】:2021-03-14 19:22:30
【问题描述】:

我是数据结构的新手。在学习循环链表时,由于卡住了,我无法进一步进步,我正在尝试将单个链表转换为循环,然后进行验证。我的程序没有给出输出,请任何人帮助我。

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

【问题讨论】:

    标签: python data-structures singly-linked-list


    【解决方案1】:

    您的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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-18
      • 1970-01-01
      • 2021-07-30
      相关资源
      最近更新 更多