信利股票行情:求一个二叉树的 叶子个数 深度 和复制这个二叉树 要C语言版的

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/04 07:32:25
短小
时间要快
简单明了

递归,给你个思路吧

1、求叶子个数
//Node 为二叉树节点类型,调用时参数为树的根 num(root);
int num(Node * node)
{
if(node == NULL) return 0;
return 1+num(node->left)+num(node->right);
}
2、高度
int height(Node *node)
{
if(node == NULL) return 0;
else
{
int x=height(node->right);
int y=height(node->left);

if(x>y) return x+1;
else return y+1;
}
}

3、复制

Node *copy(Node *node)
{
if(node == NULL) return NULL;
Node *left=copy(node->left);
Node *right=copy(node->right);
Node *newnode=(Node *)malloc(sizeof(Node));
newnode->val=node->val;
newnode->left=left;
newnode->right=right;

return newnode;
}

楼主,时间和代码长度一般来说是鱼与熊掌,不可兼得。