Leetcode链表easy | 83. 删除排序链表中的重复元素

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

示例 1:

输入: 1->1->2
输出: 1->2
示例 2:

输入: 1->1->2->3->3
输出: 1->2->3

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        ListNode* i =head;  //  动态指针1
        if(head!=nullptr){    //  非空链表才进行下面的操作
            ListNode* j=head->next;  // 动态指针2
            while(j){   //  循环条件:动态指针2未走到链表末端
                if(i->val==j->val){   
                    i->next=j->next;  //  出现重复值时,删掉,即i指向j的下一个节点
                    j=j->next;  //  j移动到下一个节点,继续比较i和j
                }
                else{     
                    i=i->next;  //  如果不相等,则两个指针同时向后移动
                    j=j->next;
                }
            }
        }
        return head;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容