struct Node
{
    Node* left;
    int const value;
    Node* right;
};

int main()
{
    {
        Node* curr {
            new Node { new Node{ nullptr,
                                 4,
                                 new Node{ nullptr, 8, nullptr }},
                       2,
                       new Node{ nullptr,
                                 5,
                                 new Node{ nullptr, 7, nullptr } } }
        };
        curr->right->left = curr->left->right;
    }
    
    // Alternativ lösning
    {
        Node* curr {new Node { nullptr, 2, nullptr} };
        curr->left = new Node {nullptr, 4, nullptr};
        curr->right = new Node {nullptr, 5, nullptr};
        Node* temp = new Node {nullptr, 8, nullptr};
        curr->left->right = temp;
        curr->right->right = new Node {nullptr, 7, nullptr};
        curr->right->left = temp;
    }
}