Так вы бы определили узел в дереве.
class Node:
def __init__(self,val):
self.data = val
self.left = None
self.right = None
Теперь давайте объявим узел temp
со значением 10.
temp = Node(10)
Предположим, вы хотите проверить независимо от того, является ли temp
листовым узлом или нет, вы бы сделали что-то вроде
if temp.left == None and temp.right == None:
print('leaf node')
return
Теперь, если вы прошли через конечный узел и проверяете, существует ли узел на самом деле или нет, вы должны сделать :
temp2 = temp.left
if temp2 == None:
#abc
или
if not temp2:
#abc
Не уверен, почему self.data = None
будет работать, в этом случае вы объявляете узел, но не назначаете ему никаких данных.
Вероятно, произойдет сбой при проверке конечного узла, поскольку мы проверяем, присутствует ли левый или правый узел. Хорошо создать узел со значением.