Find the depth of a node in BT iteratively.
int depthOfNode( Node node, int val){
if ( node == null){
return 0;
}
int count = 1;
Queue<Node> queue = new LinkedList<Node>();
queue.add(node);
queue.add(null);
while( !queue.isEmpty() ){
Node temp = queue.poll();
if( temp != null ){
if( temp.getValue() == val){
return count;
}
if( temp.getLeftNode() != null){
queue.add(temp.getLeftNode());
}
if( temp.getRightNode() != null){
queue.add(temp.getRightNode());
}
} else {
if( !queue.isEmpty()){
count++;
queue.add(null);
}
}
}
return 0;
}
No comments:
Post a Comment