【leetcode】83. Remove Duplicates from Sorted List

来源:互联网 发布:php 获取对象类型 编辑:程序博客网 时间:2024/04/29 10:37

采用两个指针,一个指向不重复的前结点,一个指向当前结点,当出现值不同的node结点时,前结点移动到当前结点。注意当前结点指向链表尾时,也需要更新前结点到的后继到链表尾。

/** *  @author         johnsondu *  @time           10:18 12th Oct 2015 *  @type           remove nodes from list *  @status         Accepted *  @problem        Remove Duplicates from Sorted List *  @url            https://leetcode.com/problems/remove-duplicates-from-sorted-list/ *//** * 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) {        if(head == NULL) return head;        ListNode* cur = head;        ListNode* pre = head;        int val = cur->val;        while(1)        {            cur = cur->next;            if(cur == NULL) {                pre->next = cur;                break;            }            if(cur->val != val) {                val = cur->val;                pre->next = cur;                pre = cur;            }        }        return head;    }};


0 0
原创粉丝点击