Обход красно черного дерева dfs

Как можно обойти с помощью dfs красно черное дерево, написал такой код, но работает не так:

void print_dfs(rbtree* root)
{
    if (root != NULL && root!= null_node)
        printf("%d key, %s value, %d color\n", root->key, root->value, root->color);
    if (root->left != null_node)
    {
        printf("%d key, %s value, %d color\n", root->key, root->value, root->color);
        print_dfs(root->left);
    }
    else if (root->right != null_node)
    {
        printf("%d key, %s value, %d color\n", root->key, root->value, root->color);
        print_dfs(root->right);
    }
}

Ответы (0 шт):