LeetCode Algorithms #83 <Remove Duplicates from Sorted List>

来源:互联网 发布:菠萝彩软件下载 编辑:程序博客网 时间:2024/06/05 11:36

Given a sorted linked list, delete all duplicates such that each element appear only once.

For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 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) {        if(!head)        {            return nullptr;        }                ListNode* stepNode = head;        while(stepNode->next != nullptr)        {            if(stepNode->val == stepNode->next->val)            {                stepNode->next = stepNode->next->next;                continue;            }            stepNode = stepNode->next;        }        return head;    }};




0 0
原创粉丝点击