Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Example
Given a binary tree as follow:
1
/ \
2 3
/ \
4 5
The maximum depth is 3
.
public class Solution {
/**
* @param root: The root of binary tree.
* @return: An integer.
*/
public int maxDepth(TreeNode root) {
//BFS
Queue<TreeNode> queue = new LinkedList<TreeNode>();
TreeNode dummy = new TreeNode(0);
int depth = 0;
if(root == null) return depth;
queue.add(root);
queue.add(dummy);
while(!queue.isEmpty()) {
TreeNode tmp = queue.poll();
if(tmp == dummy) {
if(!queue.isEmpty()) queue.add(dummy);
depth ++;
}
if(tmp.right != null) queue.add(tmp.right);
if(tmp.left != null) queue.add(tmp.left);
}
return depth;
}
}