alter public database link to private in oracle
No.  You'll need to create a new private database link.  Public database links (and synonyms) are owned by a different user than private database links (and synonyms) and you can't alter an object to change the owner.