Question: How can the code below be implemented injava?
TreapNode* deleteNode(TreapNode* root, int key)
{
    // Base case
    if (root == NULL) return root;
 Â
    // IF KEYS IS NOT AT ROOT
    if (key < root->key)
        root->left =deleteNode(root->left, key);
    else if (key > root->key)
        root->right =deleteNode(root->right, key);
 Â
    // IF KEY IS AT ROOT
 Â
    // If left is NULL
    else if (root->left == NULL)
    {
        TreapNode *temp= root->right;
        delete(root);
        root = temp; //Make right child as root
    }
 Â
    // If Right is NULL
    else if (root->right == NULL)
    {
        TreapNode *temp= root->left;
        delete(root);
        root = temp; //Make left child as root
    }
 Â
    // If ksy is at root and both left andright are not NULL
    else if (root->left->priority right->priority)
    {
        root =leftRotate(root);
        root->left =deleteNode(root->left, key);
    }
    else
    {
        root =rightRotate(root);
        root->right =deleteNode(root->right, key);
    }
 Â
    return root;
}