222 Count Complete Tree Nodes
1. Question
2. Implementation
class Solution {
public int countNodes(TreeNode root) {
if (root == null) {
return 0;
}
int leftMostHeight = getHeight(root, true);
int rightMostHeight = getHeight(root, false);
if (leftMostHeight == rightMostHeight) {
return (1 << leftMostHeight) - 1;
}
return 1 + countNodes(root.left) + countNodes(root.right);
}
public int getHeight(TreeNode node, boolean isLeft) {
int height = 0;
while (node != null) {
if (isLeft) {
node = node.left;
}
else {
node = node.right;
}
++height;
}
return height;
}
}3. Time & Space Complexity
4. References
Last updated