【发布时间】:2011-06-20 23:46:43
【问题描述】:
以下函数对二叉树进行操作。该函数将接收一个指向树根的指针和一个非负整数 k。它应该从根返回 k 深度的节点数。
struct treenode {
int data;
struct treenode* left;
struct treenode* right;
}
int numNodesHeightK(struct treenode* root, int k){
if(root == NULL) return 0; //if the tree is empty return 0
if(k == 0) return 1; //if k = 0, then the root is the only node to return
//How does this statement work?
return numNodesHeightK(root->left, k-1) + numNodesHeightK(root->right, k-1);
}
如果有人能解释一下最后陈述的逻辑。我没有看到那行代码如何返回正确的深度。
【问题讨论】:
标签: c tree binary-tree