gpt4 book ai didi

python - 在 Python 中实现链表

转载 作者:行者123 更新时间:2023-12-01 05:27:01 26 4
gpt4 key购买 nike

我不明白为什么下面的代码不起作用。当我将内容附加到 LinkedList 时,isEmpty() 仍然返回 true,并且 printList() 不打印任何内容。显然我弄乱了引用文献,但我一生都无法弄清楚我弄乱了哪里。如果您也能指出我的设计是否有任何问题,那就太好了。

class Node(object):

def __init__(self, data, next=None):

self.data = data
self.next = next

def __str__(self):
return str(self.data)



class LinkedList(object):



def __init__(self):

self.head = None
self.size = 0


def append(self, *data):

n = self.head
#new_node = Node(data)

if self.head is None:

n = self.head

for elem in data:
n = Node(elem)
n = n.next
self.size += 1

else:

n = self.head
while n.next != None:
n = n.next

for elem in data:
n.next = Node(elem)
n = n.next
self.size += 1




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

def printList(self):

n = self.head

while n is not None:
print str(n)

最佳答案

简化了代码,一次仅添加一个元素。

class Node(object):

def __init__(self, data, next=None):

self.data = data
self.next = next

def __str__(self):
return str(self.data)



class LinkedList(object):



def __init__(self):

self.head = None
self.size = 0


def append(self, data):
if not self.head:
n = Node(data)
self.head = n
return
else:
n = self.head

while n.next != None:
n = n.next

new_node = Node(data)
n.next = new_node;
return


def isEmpty(self):
return not self.head

def printList(self):
n = self.head

while n:
print str(n)
n = n.next

ll = LinkedList()
elems = [1, 2, 3, 54, 6]
for elem in elems:
ll.append(elem)

ll.printList()

输出:

>>> 
1
2
3
54
6

关于python - 在 Python 中实现链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21136284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com