题目考察的知识点

  • 二叉树的遍历

题目解答方法的文字分析

  1. 完全二叉树:所有叶子节点都出现在 k 或者 k-1 层,而且从 1 到 k-1 层必须达到最大节点数。第 k 层可以不是满的,但是第 k 层的所有节点必须集中在最左边。
  2. 通过中序(其他也可)遍历可以统计二叉树节点个数

本题解析所用的编程语言

  • cpp

完整且正确的编程代码

class Solution {
public:
    int countNodes(TreeNode* root) {
        int ret = 0;
        traversal(root, ret);
        return ret;
    }
    void traversal(TreeNode* node, int& ivec) {
        if (!node)return;
        traversal(node->left, ivec);
        ++ivec;
        traversal(node->right, ivec);
    }
};

EOF