Since we go level by level , the last stored left leaf node is deepest one ,
if ( temp . left != null ) { q . Enqueue ( temp . left ) ; if ( temp . left . left == null && temp . left . right == null ) result = temp . left ; } if ( temp . right != null ) q . Enqueue ( temp . right ) ; } return result ; }