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

    题目:

    Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

    For example,
    Given 1->2->3->3->4->4->5, return 1->2->5.
    Given 1->1->1->2->3, return 2->3.

    分类:Linked List

    代码:维护两个指针ptr,pre

     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)
    13             return head;
    14         if(head && !head->next)
    15             return head;
    16         ListNode *newHead = new ListNode(head->val - 1);
    17         newHead->next = head;
    18         ListNode *pre = newHead;
    19         ListNode *ptr = newHead;
    20         while(head)
    21         {
    22             if(pre->val != head->val && (!head->next || head->val != head->next->val))
    23             {
    24                 ptr->next = head;
    25                 ptr = ptr->next;
    26             }
    27             pre = head;
    28             head = head->next;
    29         }
    30         ptr->next = NULL;
    31         
    32         return newHead->next;
    33     }
    34 };
  • 相关阅读:
    世界本就很简单-云计算
    世界本就很简单-集群
    Linux虚拟机连接网络
    定时任务删除日志文件
    fiddler篡改请求数据
    Jmeter-线程日志查看
    Jmeter-JDBC Request
    Jmeter-查看结果树
    Jmeter-聚合报告
    Jmeter-参数化
  • 原文地址:https://www.cnblogs.com/zhangbaochong/p/5479174.html
Copyright © 2011-2022 走看看