Find the Deepest Node in a Binary Tree.

Objective: – Given a binary tree, Find the deepest node in it.


  • Take two global variable as “deepestlevel” and “value“.
  • starting with level=0, Do the inorder traversal and whenever you go down one level ( root.left OR root.right), increase the level by 1.
  • Keep checking if deepestlevel < level, if yes then update the “deepestlevel ” and “value “.
  • At the end return “value“, which will the deepest node value.
  • See the code for better explanation.



Deepest child is: 8

Top Companies Interview Questions..-

Google Microsoft Amazon Facebook more..

If you find anything incorrect or you feel that there is any better approach to solve the above problem, please write comment.

You may also like...

  • Lance

    When calling for the right child, shouldn’t it be find (root.right, ++level) instead of find(root.right, level)?

    • tutorialhorizon

      If u notice when we are calling find(root.left, ++level) we have already increased the level value. So when we make a call to root.right, it will be called with incremented value. To avoid confusion u can call find (root.left, level+1) and then find(root.right, level+1)

      • Lance

        You’re right. Thanks

        • tutorialhorizon

          You r welcome !

%d bloggers like this: