Is this the best C++ solution?
class Solution {\n    public:\n        ListNode *deleteDuplicates(ListNode *head) {\n            ListNode **runner = &head;\n            \n            if(!head 
    class Solution {\n    public:\n        ListNode *deleteDuplicates(ListNode *head) {\n            ListNode **runner = &head;\n            \n            if(!head || !head->next)return head;\n            \n            while(*runner)\n            {\n                if((*runner)->next && (*runner)->next->val == (*runner)->val)\n                {\n                    ListNode *temp = *runner;\n                    while(temp && (*runner)->val == temp->val)\n                        temp = temp->next;\n                    \n                    *runner = temp;\n                }\n                else\n                    runner = &((*runner)->next);\n            }\n            \n            return head;\n        }\n    };
[]