题解 | #删除有序链表中重复的元素-II#

删除有序链表中重复的元素-II

https://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024

/**
 * struct ListNode {
 *  int val;
 *  struct ListNode *next;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可

 思路: 用双指针进行遍历,如果连续的两次有相同的值,用n来记住这个值,然后遍历链表将此值对应的所有的节点都删掉。第一次没有编译出来,还是参考了答案,但是答案代码一读就懂了,自己咋没想到呢,惭愧。
 *
 *
 * @param head ListNode类
 * @return ListNode类
 */
struct ListNode* deleteDuplicates(struct ListNode* head ) {

    if (head == NULL)
        return head;
    struct ListNode* H = malloc(sizeof(struct ListNode));
    H->next = head;
    struct ListNode* cur = H;
    while (cur->next->next != NULL && cur->next != NULL) {
        if (cur->next->val == cur->next->next->val) {
            int n = cur->next->val;
            while (n == cur->next->val && cur->next != NULL) {
                cur->next = cur->next->next;
            }
        } else {
            cur = cur->next;
        }
    }
    return H->next;
}

全部评论

相关推荐

2024-12-26 20:46
复旦大学 C++
国棉17厂丶小王:拿了offer的那个周末晚上去网吧通宵,去网吧不知道玩什么刷了lc的每日一题,然后试着第一次打开了三角洲行动,从此少了一个已经刷了700道题的lc用户,但是烽火地带多了一只🐭🐭
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务