Given a complete binary tree, count the number of nodes.
Note:
In a complete binary tree every level, except possibly the last, is completely filled, and all nodes in the last level are as far left as possible. It can have between 1 and 2h nodes inclusive at the last level h.
Example:
Input:
1
/ \
2 3
/ \ /
4 5 6
Output: 6
Solution : For this problem we can use breath first search using queue and take one counter and keep increasing counter if we have elements and at the end return counter, and if root is null so return 0.
class Solution {
public int countNodes(TreeNode root) {
int count = 0;
if(root != null){
Queue<TreeNode> q = new LinkedList();
q.add(root);
while(!q.isEmpty()){
TreeNode temp = q.peek();
q.remove();
count++;
if(temp.left != null){
q.add(temp.left);
}
if(temp.right != null){
q.add(temp.right);
}
}
}
return count;
}
}
Note:
In a complete binary tree every level, except possibly the last, is completely filled, and all nodes in the last level are as far left as possible. It can have between 1 and 2h nodes inclusive at the last level h.
Example:
Input:
1
/ \
2 3
/ \ /
4 5 6
Output: 6
Solution : For this problem we can use breath first search using queue and take one counter and keep increasing counter if we have elements and at the end return counter, and if root is null so return 0.
class Solution {
public int countNodes(TreeNode root) {
int count = 0;
if(root != null){
Queue<TreeNode> q = new LinkedList();
q.add(root);
while(!q.isEmpty()){
TreeNode temp = q.peek();
q.remove();
count++;
if(temp.left != null){
q.add(temp.left);
}
if(temp.right != null){
q.add(temp.right);
}
}
}
return count;
}
}