代码随想录算法训练营第十六天| 104. 二叉树的最大深度 111. 二叉树的最小深度 222. 完全二叉树的节点个数
104. 二叉树的最大深度
https://leetcode.cn/problems/maximum-depth-of-binary-tree/description/

public int maxDepth(TreeNode root) {
return max(root);
}
public int max(TreeNode node){
if (node == null) return 0;
int left = max(node.left);
int right = max(node.right);
return Math.max(left,right) + 1;
}
总结:后序遍历
111. 二叉树的最小深度
https://leetcode.cn/problems/minimum-depth-of-binary-tree/description/

public int minDepth(TreeNode root) {
if (root == null) return 0;
Deque<TreeNode> deque = new ArrayDeque<>();
deque.offer(root);
int minDepth = 0;
while (!deque.isEmpty()){
minDepth++;
int len = deque.size();
for (int i = 0; i < len; i++) {
TreeNode node = deque.poll();
if (node.left == null && node.right == null){
return minDepth;
}
if (node.left != null) deque.offer(node.left);
if (node.right != null) deque.offer(node.right);
}
}
return 0;
}
总结:层序遍历模版
222. 完全二叉树的节点个数
https://leetcode.cn/problems/count-complete-tree-nodes/description/

public int countNodes(TreeNode root) {
if (root == null) return 0;
int left = countNodes(root.left);
int right = countNodes(root.right);
return left + right + 1;
}
浙公网安备 33010602011771号