题目1:【二刷完成】
代码1:
class Solution {
public int maxDepth(TreeNode root) {
if (root==null) return 0;
int a=maxDepth(root.left);
int b=maxDepth(root.right);
return Math.max(a,b)+1;
}
}
class Solution {
public int maxDepth(TreeNode root) {
Queue<TreeNode> que = new LinkedList<>();
if (root==null) return 0;
que.add(root);
int depth = 0;
while(!que.isEmpty()){
int size = que.size();
depth++;
for (int i=0;i<size;i++){
TreeNode node = que.poll();
if (node.left!=null) que.add(node.left);
if (node.right!=null) que.add(node.right);
}
}
return depth;
}
}
题目:【二刷完成】
代码:
class Solution {
public int maxDepth(Node root) {
if (root==null) return 0;
int depth = 0;
for (Node node : root.children){
depth = Math.max(depth,maxDepth(node));
}
return depth+1;
}
}
class Solution {
public int maxDepth(Node root) {
Queue<Node> que = new LinkedList<>();
if (root==null) return 0;
que.add(root);
int depth=0;
while(!que.isEmpty()){
depth++;
int size = que.size();
for (int i=0;i<size;i++){
Node node = que.poll();
if (node.children!=null){
for (Node inode : node.children){
que.add(inode);
}
}
}
}
return depth;
}
}
题目:【二刷完成】
代码2:
class Solution {
public int minDepth(TreeNode root) {
if (root==null) return 0;
Queue<TreeNode> que = new LinkedList<>();
que.add(root);
int depth = 0;
while(!que.isEmpty()){
int size = que.size();
depth++;
for (int i=0;i<size;i++){
TreeNode node = que.poll();
if (node.left==null&&node.right==null) return depth;
if (node.left!=null) que.add(node.left);
if (node.right!=null) que.add(node.right);
}
}
return depth;
}
}
class Solution {
public int minDepth(TreeNode root) {
if (root==null) return 0;
int a=minDepth(root.left);
int b=minDepth(root.right);
if (root.left==null){
return ++b;
}
if (root.right==null){
return ++a;
}
return Math.min(a,b)+1;
}
}
题目:【二刷完成】
代码3:
class Solution {
public int countNodes(TreeNode root) {
if (root==null) return 0;
int a=countNodes(root.left);
int b=countNodes(root.right);
return a+b+1;
}
}
class Solution {
public int countNodes(TreeNode root) {
if (root==null) return 0;
Queue<TreeNode> que = new LinkedList<>();
que.add(root);
int num = 0;
while(!que.isEmpty()){
int size = que.size();
for (int i=0;i<size;i++){
TreeNode node = que.poll();
num++;
if (node.left!=null) que.add(node.left);
if (node.right!=null) que.add(node.right);
}
}
return num;
}
}