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 = data
        self.left = None
        self.right = None

class binaryTree:
    def __init__(self):
        self.root = None
    #inserts a node in binary tree
    def insert(self,data):
        if(self.root == None):
            self.root = Node(data)
        else:
            self.insertNode(data,self.root)

    Above is boilerplate code for the binary tree we are not focused on that now lets see 

Lowest Common Ancestor 

code: 

#Lowest common ancestor of binary tree
def lca(self, root, n1, n2):
    if root is None: # Base case
        return None
    if root.data == n1 or root.data == n2: # Base case
        return root
    left = self.lca(root.left, n1, n2) # Recursive call for left subtree
    right = self.lca(root.right, n1, n2) # Recursive call for right subtree
    if left and right: # If both left and right subtrees contain one of the nodes
        return root
    # Return left subtree if left subtree contains node, else return right subtree
    return left if left else right


#lowest common ancestor of binary tree
print("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

Categories

Big Data Analytics Binary Search Binary Search Tree Binary To Decimal binary tree Breadth First Search Bubble sort C Programming c++ Chemical Reaction and equation class 10 class 10th Class 9 Climate Complex Numbers computer network counting sort CSS Cyber Offenses Cyber Security Cyberstalking Data Science Data Structures Decimal To Binary Development diamond pattern Digital Marketing dust of snow Economics Economics Lesson 4 Email Validation English fire and ice Food Security in India Footprints Without feet Forest And Wildlife Resources game Geography Geography lesson 6 glassmorphism Glossary Graph HackerRank Solution hindi HTML image previewer India-Size And Location Insertion Sort Internet Network Status Interview Questions Introduction to cyber crime and cyber security IT javascript tricks json to CSV converter lesson 2 lesson 1 lesson 2 Lesson 3 Lesson 6 lesson 7 Life lines of National Economy life processes Linear Search Linked List lowest common ancestor Machine Learning MCQs median in array Merge sort min and max of two numbers Moment Money and Credit My Childhood Natural Vegetation and Wildlife NCERT Network connectivity devices Network Models Network Security No Men Are foreign Node.js operator overloading P5.js PHP Physical features of India Population Prime Numbers python Quick sort R language Rain on the roof Regular Expression Resources and development reversing array saakhi science Searching Algorithm Selection sort Social Media Marketing social science Software Engineering Software Testing Sorting Algorithm Stacks staircase pattern System Concepts Text Recognition The last Leaf time converter Time Passed From A Date Todo List App Tree Trending Technologies Understanding Economic Development username and password video player Visualization water resources Wired And Wireless LAN साखी
Show more

Popular Posts

Big Data MCQs(multiple choice questions) with answers - letsbug

Digital Marketing MCQ(Multiple Choice Questions) with Answers | part 1 | letsbug

Software Engineering MCQs questions with answers - letsbug