zoukankan      html  css  js  c++  java
  • [LeetCode]Remove Duplicates from Sorted List

    题目描述:(链接

    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.

    解题思路:

     1 /**
     2  * Definition for singly-linked list.
     3  * struct ListNode {
     4  *     int val;
     5  *     ListNode *next;
     6  *     ListNode(int x) : val(x), next(NULL) {}
     7  * };
     8  */
     9 class Solution {
    10 public:
    11     ListNode* deleteDuplicates(ListNode* head) {
    12         ListNode *prev = NULL;
    13         for (ListNode *cur = head; cur != NULL; cur = cur->next) {
    14             if (cur == head) {
    15                 prev = cur;
    16                 continue;
    17             }
    18             
    19             if (cur->val == prev->val) {
    20                 prev->next = cur->next;
    21             } else {
    22                 prev = cur;
    23             }
    24         }
    25         
    26         return head;
    27     }
    28 };

     递归版:2015-10-26更新

     1 /**
     2  * Definition for singly-linked list.
     3  * struct ListNode {
     4  *     int val;
     5  *     ListNode *next;
     6  *     ListNode(int x) : val(x), next(NULL) {}
     7  * };
     8  */
     9 class Solution {
    10 public:
    11     ListNode* deleteDuplicates(ListNode* head) {
    12         if (!head || !(head->next)) return head;
    13         
    14         ListNode *p = head->next;
    15         if (p->val == head->val) {
    16             while (p && p->val == head->val) {
    17                 ListNode *tmp = p;
    18                 p = p->next;
    19                 delete tmp;
    20             }
    21             head->next = p;
    22             return deleteDuplicates(head);
    23         } else {
    24             head->next = deleteDuplicates(p);
    25             return head;
    26         }
    27     }
    28 };
  • 相关阅读:
    18软工实践-第三次作业-结对项目1
    结对作业之代码规范
    ALPHA(7)
    ALPHA(6)
    ALPHA(五)
    404 Note Found 现场编程
    ALPHA(四)
    ALPHA冲刺(三)
    ALpha冲刺(二)
    ALPHA 冲刺(一)
  • 原文地址:https://www.cnblogs.com/skycore/p/4903146.html
Copyright © 2011-2022 走看看