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 };
  • 相关阅读:
    我们可以用微服务创建状态机吗?
    MyBatis 实现一对多有几种方式,怎么操作的?
    说几个 zookeeper 常用的命令?
    使用 RabbitMQ 有什么好处?
    消息基于什么传输?
    如何获取自动生成的(主)键值?
    vue打包压缩
    mysqldump数据库全备份_MySQL
    mysql的binlog
    开启BinLog_MySQL
  • 原文地址:https://www.cnblogs.com/skycore/p/4903146.html
Copyright © 2011-2022 走看看