ID | Title | Difficulty | |
---|---|---|---|
Loading... |
222. Count Complete Tree Nodes
Medium
LeetCode
Binary Search, Tree, Depth-First Search, Binary Tree
Problem
Given a complete binary tree, count the number of nodes.
Note:
Definition of a complete binary tree from Wikipedia: 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
Code
class Solution {
public int countNodes(TreeNode root) {
int left = leftDepth(root);
int right = rightDepth(root);
if(left == right){
return (1 << left) - 1;
} else {
return 1 + countNodes(root.left) + countNodes(root.right);
}
}
private int leftDepth(TreeNode root){
int res = 0;
while(root != null){
root = root.left;
res++;
}
return res;
}
private int rightDepth(TreeNode root){
int res = 0;
while(root != null){
root = root.right;
res++;
}
return res;
}
}
按 <- 键看上一题!
221. Maximal Square
按 -> 键看下一题!
223. Rectangle Area