递归法
1、确定递归函数的参数和返回值:参数就是传⼊树的根节点,返回就返回以该节点为根节点⼆叉树的节点数量,所以返回值为int类型。
int countNodes(TreeNoed* root)
2、确定终⽌条件:如果为空节点的话,就返回0,表示节点数为0。代码如下:
if(node==nullptr) return 0;
3、确定单层递归的逻辑:先求它的左⼦树的节点数量,再求的右⼦树的节点数量,最后取总和再加⼀(加1是因为算上当前中间节点)就是⽬前节点为根节点的节点数量。
int leftnodes=getnodes(node->left); //左
int rightnodes=getnodes(node->right);//右
int sum=leftnodes+rightnodes;//中
return sum+1;
完整递归代码:
class Solution {
public:
int getnodes(TreeNode*