首页 > 其他 > 详细

LintCode - Remove Duplicates from Sorted List

时间:2015-07-24 22:42:51      阅读:351      评论:0      收藏:0      [点我收藏+]

LintCode - Remove Duplicates from Sorted List

http://www.lintcode.com/en/problem/remove-duplicates-from-sorted-list/

Description

Given a sorted linked list, delete all duplicates such that each element appear only once.
Example
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.

Code - C++

/**
 * Definition of ListNode
 * class ListNode {
 * public:
 *     int val;
 *     ListNode *next;
 *     ListNode(int val) {
 *         this->val = val;
 *         this->next = NULL;
 *     }
 * }
 */
class Solution {
public:
    /**
     * @param head: The first node of linked list.
     * @return: head node
     */
    ListNode *deleteDuplicates(ListNode *head) {
        // write your code here
        ListNode* current = head;
        ListNode* next_next;
        if (current == NULL) {
            return NULL;
        }
        while (current->next != NULL) {
            if (current->val == current->next->val) {
                next_next = current->next->next;
                delete current->next;
                current->next = next_next;
            } else {
                current = current->next;
            }
        }
        return head;
    }
};

Tips

Algorithm:
Traverse the list from the head (or start) node. While traversing, compare each node with its next node. If data of next node is same as current node then delete the next node. Before we delete a node, we need to store next pointer of the node

版权声明:本文为博主原创文章,未经博主允许不得转载。

LintCode - Remove Duplicates from Sorted List

原文:http://blog.csdn.net/lionpku/article/details/47046951

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!