2016-07-19 7 views
-2

Ich versuche, 2 sortierte verknüpfte Liste in einzelne sortierte verknüpfte Liste zusammenzuführen.Python: AttributError: Objekt 'NoneType' hat kein Attribut 'Daten'

class Node: 
    # Function to initialise the node object 
    def __init__(self, data): 
     self.data =data 
     self.next = None 

class LinkedList: 
     def mergeNode(self, second_list): 
     llist4 = LinkedList() 
     first_node = self.head 
     second_node = second_list.head 

     while (first_node!=None or second_node != None): 
      if (first_node.data > second_node.data): 

        llist4.push(first_node) 
        prev = first_node 
        first_node = first_node.next 

      elif (first_node.data < second_node.data): 

        llist4.push(second_node) 
        prev = second_node 
        second_node = second_node.next 

     else: 
       llist4.push(first_node) 
       llist4.push(second_node) 
       prev = second_node 
       second_node = second_node.next 
       first_node = first_node.next 
     return llist4 

if __name__ == '__main__': 

    llist = LinkedList() 
    llist2 = LinkedList() 
    llist3 = LinkedList() 

    llist.push(15) 
    llist.push(10) 
    llist.push(5) 

    llist2.push(12) 
    llist2.push(3) 
    llist2.push(2) 
     llist3 = llist.mergeNode(llist2) 
    llist3.printList() 

Aber ich bin immer Fehler wie:
" AttributeError: 'NoneType' object has no attribute 'data'"
ich weiß, dass ich vielleicht Keinen Wert in meinem Code verwenden, indem ich nicht in der Lage bin, den Grund herauszufinden. Jemand bitte helfen Sie mir, das Problem herauszufinden?

+0

Mögliche Duplikat [Python: Attribut Fehler - 'NoneType' Objekt hat kein Attribut 'etwas'] (http://stackoverflow.com/questions/8949252/ python-attribute-error-nonetype-object-has-no-attribute-something) – intboolstring

+0

Ich habe bereits den Link "Python: Attribut Fehler - 'NoneType' Objekt hat kein Attribut 'etwas'" bin mir bewusst, dass ich versuche zu verwenden Kein Wert in meinem Code, aber ich bin nicht in der Lage, den Grund herauszufinden. – Vishal

Antwort

0

first_node!=None or second_node != None garantiert nicht, dass beide Werte None sind.

first_node = None 
second_node = "something" 
print first_node!=None or second_node != None # True 

Gebrauch geeigneten Zustand:

while first_node is not None and second_node is not None: 
    do_something()