簡體   English   中英

檢查鏈表是否為空

[英]Check whether a linked list is empty or not

這是我的代碼。 我手動創建了一個鏈表來檢查我的方法是否有效。 但是我得到的 output 什么都不是。 沒有output

class Node:
    def __init__(self, data=None):
        self.data = data
        self.next = None

node1=Node(2)
node2=Node(4)
node3=Node(5)
node1.next=node2
node2.next=node3
a=node1

class MyList():
    def __init__(self):
        self.head=Node()

    def isEmpty(self,a):
        return self.head.next is None

hello=MyList()
print(hello.isEmpty(a))


如果要將數據添加到 LinkedList,則需要手動設置列表的頭部。 這段代碼可能是你想要的:

class Node:
    def __init__(self, data=None):
        self.data = data
        self.next = None

node1=Node(2)
node2=Node(4)
node3=Node(5)
node1.next=node2
node2.next=node3

class MyList():
    def __init__(self):
        self.head=Node()

    def isEmpty(self):
        return self.head.data is None

hello=MyList()
print(hello.isEmpty())


new_hello = MyList()
new_hello.head=node1
print(new_hello.isEmpty())

Output

True
False

您永遠不會以當前的方式將頭節點設置為指向另一個節點(您的頭和“a”實際上不是同一個節點)。 傳入另一個變量作為節點 object 來更改它。

a = node1
class MyList():
    def __init__(self, head):
        self.head = head

    def isEmpty(self):
        return self.head is None # a linked list with a head is technically not empty

new_hello = MyList(a)
print (new_hello.isEmpty())

我個人會添加一個add_node(self, value)方法並跟蹤結束節點,而不是按照你的方式做

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM