diff options
Diffstat (limited to 'c13/ex06/btree_level_count.c')
| -rw-r--r-- | c13/ex06/btree_level_count.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/c13/ex06/btree_level_count.c b/c13/ex06/btree_level_count.c index e69de29..5f83662 100644 --- a/c13/ex06/btree_level_count.c +++ b/c13/ex06/btree_level_count.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_level_count.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/07/24 11:51:34 by cacharle #+# #+# */ +/* Updated: 2019/07/24 12:28:45 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include <stdlib.h> +#include "ft_btree.h" + +int btree_level_count(t_btree *root) +{ + int left_level; + int right_level; + + if (root == NULL) + return (0); + left_level = 0; + right_level = 0; + if (root->left != NULL) + left_level = btree_level_count(root->left); + if (root->right != NULL) + right_level = btree_level_count(root->right); + if (left_level >= right_level) + return (1 + left_level); + else + return (1 + right_level); +} |
