标签:== turn lis val ted 调用 不同 span off
错误代码:
class Solution { public: ListNode* deleteDuplication(ListNode* pHead) { if(pHead == NULL) return NULL; if(pHead->next == NULL) return pHead; ListNode* current = NULL; if(pHead->val == pHead->next->val){ current = pHead->next->next; while(current->val == pHead->val && current != NULL) current = current->next; return deleteDuplication(current); } else{ current = pHead->next; pHead->next = deleteDuplication(current); } return pHead; } };
正确代码:
class Solution { public: ListNode* deleteDuplication(ListNode* pHead) { if(pHead == NULL) return NULL; if(pHead->next==NULL) return pHead; ListNode* current = NULL; if(pHead->val == pHead->next->val){ current = pHead->next->next; while(current != NULL && current->val == pHead->val) current = current->next; return deleteDuplication(current); } else{ current = pHead->next; pHead->next = deleteDuplication(current); //return pHead; } return pHead; } };
可以看到不同点只是把current->val == pHead->val和current != NULL换了一下位置
错误的代码报错报的是:段错误:您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情况引起
标签:== turn lis val ted 调用 不同 span off
原文地址:http://www.cnblogs.com/ymjyqsx/p/7196125.html