题目描述
给出一棵二叉树,返回其节点数。
算法思路
根据递归函数实现,如果树不为空,根节点为1
1 统计根节点左子树
2 统计根节点右子树
3 将左子树节点个数+右子树节点个数+根节点个数1=即为整颗树的节点个数
4 统计左右子树的节点个数也是按照1~3的步骤进行
5 当树为空时,根节点的个数为0,即为递归函数的出口。
代码实现(JAVA)
public int getAns(TreeNode root) {
// Write your code here
if (root == null) {
return 0;
}
int left = getAns(root.left);
int right = getAns(root.right);
return 1 + left + right;
}
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val){
this.val = val;
left = null;
right = null;
}
}