104.二叉树的最大深度
2021-04-16 本文已影响0人
康大侠

/**
* 递归
* */
public int maxDepth(TreeNode root) {
if (root == null) return 0;
return 1 + Math.max(maxDepth(root.left), maxDepth(root.right));
}
/**
* 迭代,就是二叉树的层序遍历,加上高度计算
* */
public int maxDepth(TreeNode root) {
if (root == null) return 0;
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
// 树的高度
int height = 0;
// 存储着每一层的元素数量
int levelSize = 1;
while (!queue.isEmpty()) {
TreeNode tmpNode = queue.poll();
levelSize--;
if (tmpNode.left != null) {
queue.offer(tmpNode.left);
}
if (tmpNode.right != null) {
queue.offer(tmpNode.right);
}
if (levelSize == 0) {
levelSize = queue.size();
height++;
}
}
return height;
}
```