package com.gloomy.leetcode;
import java.util.ArrayDeque;
import java.util.Queue;
/**
* 题目描述
*
* Given a binary tree, find its minimum depth.The minimum depth is the number
* of nodes along the shortest path from the root node down to the nearest leaf
* node.
*
* @author 过路的守望
*
*/
public class MaxDepth {
/**
* 基于递归实现
* @param root
* @return
*/
public int maxDepth(TreeNode root) {
if (root == null) {
return 0;
}
return 1 + Math.max(maxDepth(root.left), maxDepth(root.right));
}
/**
* 基于广度优先遍历实现。
* @param root
* @return
*/
/* public int maxDepth(TreeNode root){
* root为空,树中无元素返回0
if(root == null){
return 0;
}
Queue<TreeNode> queue = new ArrayDeque<TreeNode>();
queue.offer(root);
* levelNodes 当前层节点数
* nextLevelNodes 下一层节点数
* depth 深度
int levelNodes = 1;
int nextLevelNodes = 0;
int depth = 0;
while(!queue.isEmpty()){
root = queue.poll();
levelNodes--;
if(root.left!=null){
queue.offer(root.left);
nextLevelNodes++;
}
if(root.right!=null){
queue.offer(root.right);
nextLevelNodes++;
}
* 当前层已经处理完
if(levelNodes == 0){
depth++;
levelNodes = nextLevelNodes;
nextLevelNodes = 0;
}
}
return depth;
}*/
}