题目
分析
做了不少递归的题了,经验就是一定要把当前节点的所有情况考虑清楚然后递归到下一个节点。
每个节点完成它所需要完成的任务后返回。
根据函数要求的返回值确定递归结束后需要返回什么。
题解
class Solution {
public:
ListNode *deleteDuplicates(ListNode *head) {
if(head==NULL)
return NULL;
else if (head->next==NULL)
return head;
else
{
if(head->val==head->next->val)
{
head->next=head->next->next;
deleteDuplicates(head);
}
else
{
deleteDuplicates(head->next);
}
}
return head;
}
};