Lowest Common Ancestor Of Binary Tree In Python | letsbug
Hey in the article we are looking at a coding challenge problem. You might have come across this it is called finding the lowest common ancestor in a binary tree.
So we will find the solution to this problem in python. Let's start. The answer is simple we have to visit every node and check if its child is same as it is asked if so then you return the node and we repeat this process for subtrees of the tree and then if left and right node exit we return it. to the top.
code:
class Node:def __init__(self,data):self.data = dataself.left = Noneself.right = Noneclass binaryTree:def __init__(self):self.root = None#inserts a node in binary treedef insert(self,data):if(self.root == None):self.root = Node(data)else:self.insertNode(data,self.root)
Lowest Common Ancestor
#Lowest common ancestor of binary treedef lca(self, root, n1, n2):if root is None: # Base casereturn Noneif root.data == n1 or root.data == n2: # Base casereturn rootleft = self.lca(root.left, n1, n2) # Recursive call for left subtreeright = self.lca(root.right, n1, n2) # Recursive call for right subtreeif left and right: # If both left and right subtrees contain one of the nodesreturn root# Return left subtree if left subtree contains node, else return right subtreereturn left if left else right#lowest common ancestor of binary treeprint("Lowest Common Ancestor of binary tree is:")print(tree.lca(tree.root, 10, 20))
Above code is for finding lowest common ancestor of binary tree now you can initialize it and run it. I have initialize the binary tree with random numbers and called the lca function and go this output.
output:
Lowest Common Ancestor of binary tree is:
None
☺👆
Comments
Post a Comment