C++ 二叉树-删除级别大于或等于给定级别的节点

C++ 二叉树-删除级别大于或等于给定级别的节点,c++,binary-tree,binary-search-tree,C++,Binary Tree,Binary Search Tree,正如标题所说,我需要编写一个函数,从二叉树中删除所有级别大于或等于作为参数的函数中给定级别的节点,例如,我需要删除所有级别为2或更高的节点。 但是,我不能向节点添加任何属性,也不能使用堆栈、队列等或任何其他结构。 有什么想法吗?非常感谢。Node和deleteNode的实现取决于您: void deleteLevel(Node *node, size_t level) { if(node->right) { if(l

正如标题所说,我需要编写一个函数,从二叉树中删除所有级别大于或等于作为参数的函数中给定级别的节点,例如,我需要删除所有级别为2或更高的节点。 但是,我不能向节点添加任何属性,也不能使用堆栈、队列等或任何其他结构。
有什么想法吗?非常感谢。

Node和deleteNode的实现取决于您:

   void deleteLevel(Node *node, size_t level)
    {
        if(node->right)
        {
            if(level == 0)
            {
                deleteNode(node->right);
                node->right = nullptr;
            }
            else deleteLevel(node->right, level - 1);
        }
        if(node->left)
        {
            if(level == 0)
            {
                deleteNode(node->left);
                node->left = nullptr;
            }
            else deleteLevel(node->left, level - 1);
        }
    }

    ...

    deleteLevel(aNode, levlOfANode);

Node和deleteNode的实现取决于您。

那么您尝试了什么?