Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Written by Prashant Basnet
Prashant Basnet, a software engineer at Unisala.com, focuses on software development and enjoys building platforms to share knowledge. Interested in system design, data structures, and is currently learning NLP
What are some real world usage of this tree comparison algorithm?
1. Facebook: React's Virtual DOM:
2. Amazon: Merkle Trees in S3 and DynamoDB:
2. Google: Google Drive File Sync:
Now that we understand what's the use of this algorithm. let's look into our actual question of comparing if two binary trees given to us are same or not.
Given the roots of two binary trees p and q, write a function to check if they are the same or not.
Two binary trees are considered the same if they are structurally identical, and the nodes have the same value.
Derivatives:
How do we link this solution to check if the tree are identical?
To me this sounds reasonable solution??
BFS ensures that the nodes are visited level by level. However, two trees can have the same BFS result but different structures. For example:
Both trees would produce the same BFS result [1, 2], but they are structurally different.
So does it have to do anything with BFS or DFS at all?
All we know is we need to traverse all the nodes in a tree and compare to each other as we traverse.
To me if we are solving same nature of problem over and over again it is some kind of recursive problem.
Does that ring a bell? Recursive is how our DFS are designed.
We want to compare these nodes as we go through: i.e grab as you go (Pre-order)
Now next few questions we need to tackle:
Complexity:
Following up questions:
let's continue the discussion!!
#blind75 #tree #binaryTree