码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode] Remove Duplicates from Sorted List

时间:2014-11-09 20:51:20      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   ar   sp   for   div   on   log   

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.

 

这题比较简单,用两个指针,一个cursor遍历链表用,一个stick指向上一个不重复的node,这样每次遍历时如果cursor跟stick不一样的话就把stick的next指向cursor,然后更新stick,这样一直到遍历结束,还有最后一步很容易遗漏,就是把stick指向NULL,因为此时stick应该是新链表的尾巴。

这个方法能适用是因为链表是有序的。

ListNode *deleteDuplicates(ListNode *head) {
    if (!head) return NULL;
    
    ListNode *stick = head, *cursor = head->next;
    while (cursor) {
        if (cursor->val == stick->val) {
            cursor = cursor->next;
            continue;
        }
        else {
            stick->next = cursor;
            stick = cursor;
        }
        cursor = cursor->next;
    }
    stick->next = NULL;
    return head;
}

 

[LeetCode] Remove Duplicates from Sorted List

标签:style   blog   color   ar   sp   for   div   on   log   

原文地址:http://www.cnblogs.com/agentgamer/p/4085815.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!