Leecode
559. N 叉树的最大深度
层序遍历:
class Solution {
public int maxDepth(Node root) {
int max = 0;
if(root == null){
return max;
}
Queue<Node> queue = new LinkedList<>();
queue.offer(root);
while(!queue.isEmpty()){
max++;
int size = queue.size();
for(int i=0;i<size;i++){
Node pop = queue.poll();
List<Node> children = pop.children;
if(children.size()==0||children == null){
continue;
}
for(Node child : children){
queue.offer(child);
}
}
}
return max;
}
}
222.完全二叉树的节点个数
- 广度----层序遍历:
class Solution {
public int countNodes(TreeNode root) {
int count = 0;
if(root == null){
return count;
}
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while(!queue.isEmpty()){
int size = queue.size();
count +=size;
for(int i=0;i<size;i++){
TreeNode pop = queue.poll();
if(pop.left!=null){
queue.offer(pop.left);
}
if(pop.right!=null){
queue.offer(pop.right);
}
}
}
return count;
}
}
- 深度优先— 递归
class Solution {
public int countNodes(TreeNode root) {
int count =0;
if(root == null){
return count;
}
return countNodes(root.left)+countNodes(root.right)+1;
}
}