Result is initialized as None. Result is updated with insertNode. Since Result is None, insertNode should have updated Result with the argument Node.
But I'm getting None even after insertNode method call.
Trying to Merge two Binary-Search-Tree
class Node:
def __init__(self, value):
self.left = None
self.data = value
self.right = None
def insert(root, node):
if root is None:
root = node
else:
#usual code to insert other nodes.....
methods I'm implementing
def merge(root1, root2):
if (root1 is None):
return root2
if (root2 is None):
return root1
result = None
mergeUtil(result, root1, root2)
return result
def mergeUtil(result, root1, root2):
mergeUtil(result, root1.left, root2)
mergeUtil(result, root1, root2.left)
if(root1.data < root2.data):
insert(result, Node(root1.data))
print(type(result))
else:
insert(result, Node(root2.data))
print(result.data)
mergeUtil(result, root1.right, root2)
mergeUtil(result, root1, root2.right)
I'm getting class 'NoneType' for print(type(result))
under mergeUtil(...)
WHY? result should be pointed to Node(root1.data) or Node(root2.data) right?
PS: I Know the above code will not actually achieve anything in terms of merging BSTs. Work in progress.