Yes, but you should also check for NULL before deleting. If it's not pointing anywhere, delete can lead to problems. Also, the official "NULL" for pointers is the "nullptr" keyword. It's the exact same as "p = NULL" or "p = 0", but a bit more obvious.
-1 "delete" is guaranteed to do nothing with a null-pointer.
18.104.22.168 Deallocation functions, Paragraph 3: "The value of the first argument supplied to a deallocation function may be a null pointer value; if so, and if the deallocation function is one supplied in the standard library, the call has no effect."