这个链表实现有什么问题?
What is wrong with this linked list implementation?
运行 脚本产生错误:
Traceback (most recent call last):
File "D:/PycharmProjects/GeeksforGeeks/Linked List/Insertion of Nodes in LinkedList.py", line 49, in <module>
llist.printList()
File "D:/PycharmProjects/GeeksforGeeks/Linked List/Insertion of Nodes in LinkedList.py", line 39, in printList
违规行是:
print(temp.data,end=' ')
AttributeError: 'int' 对象没有属性 'data'
我的密码是:-
class Node:
def __init__(self,data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def push(self,new_data):
new_node = Node(new_data)
new_node.next = self.head
self.head = new_node
def insertAfter(self,prev_node,new_data):
if prev_node is None:
return
new_node = Node(new_data)
new_node.next = prev_node.next
prev_node.next = new_node
def append(self,new_data):
new_node = Node(new_data)
if self.head is None:
self.head = new_node
return
last = self.head
while (last.next):
last = last.next
last.next = new_data
def printList(self):
temp = self.head
while (temp):
print(temp.data,end=' ')
temp = temp.next
if __name__ == '__main__':
llist = LinkedList()
llist.append(6)
llist.push(7)
llist.push(1)
llist.append(4)
llist.insertAfter(llist.head.next,8)
llist.printList()
在你的方法中append
,last.next
应该是new_node
class Node:
def __init__(self,data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def push(self,new_data):
new_node = Node(new_data)
new_node.next = self.head
self.head = new_node
def insertAfter(self,prev_node,new_data):
if prev_node is None:
return
new_node = Node(new_data)
new_node.next = prev_node.next
prev_node.next = new_node
def append(self,new_data):
new_node = Node(new_data)
if self.head is None:
self.head = new_node
return
last = self.head
while (last.next):
last = last.next
last.next = new_node
def printList(self):
temp = self.head
while (temp):
print(temp.data,end=' ')
temp = temp.next
if __name__ == '__main__':
llist = LinkedList()
llist.append(6)
llist.push(7)
llist.push(1)
llist.append(4)
llist.insertAfter(llist.head.next,8)
llist.printList()
输出:
1 7 8 6 4
append
函数中存在错误:
def append(self,new_data):
new_node = Node(new_data)
if self.head is None:
self.head = new_node
return
last = self.head
while last.next:
last = last.next
last.next = new_node # should not be new_data
运行 脚本产生错误:
Traceback (most recent call last):
File "D:/PycharmProjects/GeeksforGeeks/Linked List/Insertion of Nodes in LinkedList.py", line 49, in <module>
llist.printList()
File "D:/PycharmProjects/GeeksforGeeks/Linked List/Insertion of Nodes in LinkedList.py", line 39, in printList
违规行是:
print(temp.data,end=' ')
AttributeError: 'int' 对象没有属性 'data'
我的密码是:-
class Node:
def __init__(self,data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def push(self,new_data):
new_node = Node(new_data)
new_node.next = self.head
self.head = new_node
def insertAfter(self,prev_node,new_data):
if prev_node is None:
return
new_node = Node(new_data)
new_node.next = prev_node.next
prev_node.next = new_node
def append(self,new_data):
new_node = Node(new_data)
if self.head is None:
self.head = new_node
return
last = self.head
while (last.next):
last = last.next
last.next = new_data
def printList(self):
temp = self.head
while (temp):
print(temp.data,end=' ')
temp = temp.next
if __name__ == '__main__':
llist = LinkedList()
llist.append(6)
llist.push(7)
llist.push(1)
llist.append(4)
llist.insertAfter(llist.head.next,8)
llist.printList()
在你的方法中append
,last.next
应该是new_node
class Node:
def __init__(self,data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def push(self,new_data):
new_node = Node(new_data)
new_node.next = self.head
self.head = new_node
def insertAfter(self,prev_node,new_data):
if prev_node is None:
return
new_node = Node(new_data)
new_node.next = prev_node.next
prev_node.next = new_node
def append(self,new_data):
new_node = Node(new_data)
if self.head is None:
self.head = new_node
return
last = self.head
while (last.next):
last = last.next
last.next = new_node
def printList(self):
temp = self.head
while (temp):
print(temp.data,end=' ')
temp = temp.next
if __name__ == '__main__':
llist = LinkedList()
llist.append(6)
llist.push(7)
llist.push(1)
llist.append(4)
llist.insertAfter(llist.head.next,8)
llist.printList()
输出:
1 7 8 6 4
append
函数中存在错误:
def append(self,new_data):
new_node = Node(new_data)
if self.head is None:
self.head = new_node
return
last = self.head
while last.next:
last = last.next
last.next = new_node # should not be new_data