【发布时间】:2018-12-17 14:31:50
【问题描述】:
我想计算一棵二叉树中有多少节点只有一个孩子。我不知道这样行不行。另外我不知道我是否必须使用像 postorder 这样的树搜索。
size_t tree_one_child(const tree_t* t){
if(!t || number_children(t)==0){
return 0;
}
if(number_children(t)==1){
return 1 + tree_one_child(t->left) + tree_one_child(t->right);
}
else{
return tree_one_child(t->left) + tree_one_child(t->right);
}
size_t number_children(const tree_t* t){
int count = 0;
if(t->left != null ) count++;
if(t->right != null) count++;
return count;
}
【问题讨论】:
-
您是否只考虑直系子女或任何“孙子女”?
-
这看起来不错。
-
我觉得很好。
-
只是直系子女
标签: c recursion struct tree binary-tree