1.使用递归来实现
class Solution {
public:
int countNodes(TreeNode* root)
{
if(root == nullptr) return 0;
return countNodes(root->left) + countNodes(root->right) + 1;
}
};
2. 根据完全二叉树的性质简化遍历次数
- 如果根节点的左子树深度等于右子树深度,则说明左子树为满二叉树
- 如果根节点的左子树深度大于右子树深度,则说明右子树为满二叉树
class Solution {
public:
// 统计树的深度
int countLevels(TreeNode* root) {
int levels