每日一题:删除排序链表中的重复元素Ⅱ(LeetCode 82)

题目

给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。

参考代码

  • 迭代遍历法不再介绍,下面是递归法
class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {

        if(head == NULL || head->next == NULL){
            return head;
        }

        if(head->val != head->next->val)
        {
            ListNode *resNode = deleteDuplicates(head->next);
            head->next = resNode;
            return head;

        }
        else
        {
            ListNode *newNode = head->next;
            while(newNode != NULL && head->val == newNode->val)
            {
                newNode = newNode->next;
            }
            return deleteDuplicates(newNode);
        }

    }
};
扫描关注程序区

有任何问题,请联系邮箱:support@progdomain.com

THE END
分享
二维码
打赏
海报
每日一题:删除排序链表中的重复元素Ⅱ(LeetCode 82)
题目 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 参考代码 迭代遍历法不再介绍,下面是……
<<上一篇
下一篇>>