16-1.104二叉树的最大深度
题目
思路
递归法
代码
class Solution {
public int maxDepth(TreeNode root) {
if (root == null) return 0;
int leftDepth = maxDepth(root.left);
int rightDepth = maxDepth(root.right);
return Math.max(leftDepth, rightDepth) + 1;
}
}
16-2.559N叉树的最大深度
题目
思路
递归法
代码
class Solution {
public int maxDepth(Node root) {
if (root == null) return 0;
int depth = 0;
if (root.children != null) {
for (Node child : root.children) {
depth = Math.max(depth, maxDepth(child));
}
}
return depth + 1; //+1表示根结点
}
}
16-3.111二叉树的最小深度
题目
思路
递归法
代码
class Solution {
public int minDepth(TreeNode root) {
if (root == null) return 0;
int leftDepth = minDepth(root.left);
int rightDepth = minDepth(root.right);
if (root.left == null) return rightDepth + 1;
if (root.right == null) return leftDepth + 1;
return Math.min(leftDepth,rightDepth) + 1;
}
}
16-4.222完全二叉树的节点个数
题目
思路
递归法
代码
class Solution {
public int countNodes(TreeNode root) {
if (root == null) return 0;
int leftCount = countNodes(root.left);
int rightCount = countNodes(root.right);
return leftCount + rightCount + 1;
}
}