28. Maximum Depth of Binary Tree
The problem can be found at the following link: Question Link
My Approach
To find the maximum depth (height) of a binary tree, I have used the following approach:
I have implemented the Breadth-First Search (BFS) algorithm to traverse all levels of the tree.
I initialize a
height
variable to keep track of the number of levels in the tree.I use a queue (
q
) to perform the BFS traversal. I start by pushing the root node into the queue.While the queue is not empty, I process each level by iterating through the elements in the queue.
For each level, I increment the
height
variable by 1.During each level traversal, I remove the front node from the queue and enqueue its left and right child nodes if they exist.
After processing all the nodes in the current level, I move to the next level by continuing the outer while loop.
Finally, I return the value of the
height
variable, which represents the maximum depth (height) of the binary tree.
Time and Auxiliary Space Complexity
Time Complexity:
O(N)
, whereN
is the number of nodes in the binary tree. This is because we visit each node once during the BFS traversal.Auxiliary Space Complexity:
O(M)
, whereM
is the maximum number of nodes in a single level of the binary tree. In the worst case, the last level of the tree can contain(N/2)
nodes, where N is the total number of nodes. Therefore, the space required for the queue can beO(N/2)
, which simplifies toO(N)
.
Code (C++)
Contribution and Support
For discussions, questions, or doubts related to this solution, please visit our discussion section. We welcome your input and aim to foster a collaborative learning environment.
If you find this solution helpful, consider supporting us by giving a ⭐ star
to the getlost01/gfg-potd repository.
Last updated