这 题 是 让 求 完 全 二 叉 树 的 节 点 个 数 , 最 简 单 的 一 种 方 式 就 是 使 用 DFS , 也 就 是 递 归 解 决。如果当前节点为空,直接返回0即可,否则就返回左子节点的个数+右子节点的个数 +1。原理比较简单,直接一行代码搞定。

    1. public int countNodes(TreeNode root) {
    2. return root == null ? 0 : countNodes(root.left) + countNodes(root.right) + 1;
    3. }

    其它解法:总体思路都是遍历整棵树,然后计数。
    有前序遍历,中序遍历,后序遍 历,BFS,DFS,每种写法都包含递归和非递归,我们只需要把所有的节点都遍历一遍 就可以统计出来了,如果每个都写一遍,有点多了,这里就使用BFS来写一个,二叉树 的BFS代码如下。