I am trying to return parent node and self in Binary Search tree. I am getting this error "cannot unpack non-iterable NoneType object". Please help.
class Node:
def __init__(self,data=None):
self.data=data
self.left=None
self.right=None
def insert(self,data):
if data<self.data:
if self.left==None:
self.left=Node(data)
else:
self.left.insert(data)
elif data>self.data:
if self.right==None:
self.right=Node(data)
else:
self.right.insert(data)
else:
return
def printtree(self):
if self.left:
self.left.printtree()
print(self.data)
if self.right:
self.right.printtree()
def findval(self,data,parent=None):
if self.data==data:
return self,parent
elif data<self.data:
if self.left==None:
return None,None
else:
parent=self
self=self.left
self.findval(data,parent)
elif data > self.data:
if self.right == None:
return None,None
else:
parent = self
self = self.right
self.findval(data,parent)
else:
print("data not found")
return None,None
def deletenode(self,data):
self,parent=self.findval(data)
#Error found here
print(self.data,parent.data)
#Code of deletion
root=Node(10)
root.insert(5)
root.insert(15)
root.insert(3)
root.insert(7)
root.insert(13)
root.insert(16)
root.deletenode(5)
Trying to return parent node and self in findval function Error found = "TypeError: cannot unpack non-iterable NoneType object" How can we return an Object in Python?