zoukankan      html  css  js  c++  java
  • LeetCode(83)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.

    分析

    删除链表中重复元素结点。
    该题目本质很简单,只需一次遍历。需要注意的是,要释放删除的结点空间。

    AC代码

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* deleteDuplicates(ListNode* head) {
            if (head == NULL || head->next == NULL)
                return head;
    
            ListNode *p = head, *q = p->next;
            while (p && q)
            {
                if (p->val == q->val)
                {
                    ListNode *t = q;
                    p->next = q->next;
                    q = q->next;
                    //释放要删除的结点空间
                    delete t;
                }
                else{
                    p = p->next;
                    q = q->next;
                }//elif
            }//while
            return head;
        }
    };
    

    GitHub测试程序源码

  • 相关阅读:
    HTML和CSS 基本要点必看
    CSS
    六个选择器
    HTML初级课程 (自学可懂)
    this
    1.作用域链
    js if 语句
    js数据类型
    ifelse语句
    三元运算符
  • 原文地址:https://www.cnblogs.com/shine-yr/p/5214903.html
Copyright © 2011-2022 走看看