我正在尝试将2个排序的链表合并为单个排序的链表。
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()
但我的错误是:" AttributeError: 'NoneType' object has no attribute 'data'"
我知道我可能在代码中使用None值,因为我无法找出原因。有人能帮我找出问题吗?
first_node!=None or second_node != None
不能保证两个值都是None
。
first_node = None
second_node = "something"
print first_node!=None or second_node != None # True
使用适当条件:
while first_node is not None and second_node is not None:
do_something()