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         if (head == NULL) return NULL;
    13         
    14         for (ListNode *prev = head; prev->next != NULL;) {
    15             ListNode *q = prev->next;
    16             if (prev->val == q->val) {
    17                 prev->next = q->next;
    18                 delete q;
    19             } else {
    20                 prev = prev->next;
    21             }
    22         }
    23         
    24         return head;
    25     }
    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 == NULL || head->next ==NULL) return head;
    13         
    14       for (ListNode **curr = &head; (*curr)->next != NULL; ) {
    15           ListNode *q = (*curr)->next;
    16           if ((*curr)->val == q->val) {
    17               (*curr)->next = q->next;
    18               delete q;
    19           } else {
    20               curr = &((*curr)->next);
    21           }
    22       }
    23       
    24       return head;
    25     }
    26 };
  • 相关阅读:
    mfc判断当前程序是否正在运行
    mfc通过信号量保证线程同步
    delete和析构函数
    获取当前运行的exe路径
    mfc移动文件夹
    Cmake实现样例
    安装Node.js以及Hexo
    分类与回归的关系和区别
    從文本到視覺:各領域最前沿的論文集合
    ubuntu 终端$换行
  • 原文地址:https://www.cnblogs.com/vincently/p/4059404.html
Copyright © 2011-2022 走看看