在链接列表中添加链接-python

时间:2019-07-02 08:00:56

标签: python

我尝试将链接添加到链接列表,但是程序将Nodes作为整数而不是Node plz帮助我解决问题

class Node(object): 

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

class LinkedList(object): 

    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 add_link(self, new_link, after_link):
        new_link = Node(new_link)
        new_link.next = after_link.next
        after_link.next = new_link

    def printList(self): 
        temp = self.head 
        while(temp): 
            print temp.data, 
            temp = temp.next


llist = LinkedList() 
llist.push(20) 
llist.push(4) 
llist.push(15) 
llist.push(85) 

print "Given Linked List"
llist.printList() 
llist.add_link(35, 4) 
print "\nAfter adding Link new Linked List"
llist.printList() 

错误发生在new_link.next = after_link.next

  

AttributeError:'int'对象没有属性'next'

2 个答案:

答案 0 :(得分:0)

您必须创建Node类型的对象,然后在其中传递数据。

示例代码

node_obj = Node(34,4) 此外,在函数add_link(self, new_link, after_link)中,new_link和after_link的参数均为Node类型。

答案 1 :(得分:0)

您只需在添加链接功能中做些改动。

def add_link(self, new_link, after_link):
    new_link = Node(new_link)
    after_link=Node(after_link) 
    new_link.next = after_link.next
    after_link.next = new_link 

这是因为您要将一个整数(after_link)传递给该函数,然后使用after_link.next,这是不可能的,因为after_link是整数。因此,首先您必须将Node的数据作为after_link整数