• 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)此链表默认无头节点,head指针指向的是第一个节点

           2)链表为空或者只有一个节点时直接返回即可

    实现:

     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         //直接返回
    13         if(head==NULL||head->next==NULL) return head;
    14         ListNode *p=head;
    15         ListNode *q=head->next;
    16         while(q)
    17         {
    18             if((p->val)!=(q->val))//不等处理
    19             {
    20                 p->next=q;
    21                 p=q;
    22                 q=q->next;
    23             }
    24             else
    25             q=q->next;
    26         }
    27         p->next=NULL;//p为最后一个节点,后面节点除掉,
    28                                  //所以令p->next为空
    29         return head;
    30     }
    31 };
    View Code
  • 相关阅读:
    MicroStation VBA 操作提示
    MicroStation VBA 可视化界面
    VBA 操作数字
    MicroStation VBA基础
    C#问题
    C#复习⑨(附带C#参考答案仅限参考)
    C#复习⑧
    C#复习⑦
    C#复习⑥
    C#复习⑤
  • 原文地址:https://www.cnblogs.com/zhoutaotao/p/3801792.html
Copyright © 2020-2023  润新知