我要计算完整二叉树中的节点数。我知道使用递归执行此操作的一种方法,我的代码看起来像这样
class Solution {
public:
int countNodes(TreeNode* root) {
if(!root)return 0;
int sz;
sz=1+countNodes(root->left)+countNodes(root->right);
return sz;
}
};
但它在网上评判中给了我超出时间限制。也许是在二叉树偏斜的情况下。
如何更有效地完成这项工作?
P.S:我也试过BFS但没有运气。