zoukankan      html  css  js  c++  java
  • LintCode-112.删除排序链表中的重复元素

    删除排序链表中的重复元素

    给定一个排序链表,删除所有重复的元素每个元素只留下一个。

    样例

    给出 1->1->2->null,返回 1->2->null
    给出 1->1->2->3->3->null,返回 1->2->3->null

    标签

    链表

    思路

    遍历树,得到根节点到目标节点的路径。
    节点A和B分别得到两个路径数组pathA和pathB。
    A和B的最近公共祖先则是两个数组中第一个不同的节点。

    code

    /**
     * Definition of ListNode
     * class ListNode {
     * public:
     *     int val;
     *     ListNode *next;
     *     ListNode(int val) {
     *         this->val = val;
     *         this->next = NULL;
     *     }
     * }
     */
    class Solution {
    public:
        /**
         * @param head: The first node of linked list.
         * @return: head node
         */
        ListNode *deleteDuplicates(ListNode *head) {
            // write your code here
            if(NULL == head)
                return NULL;
    
            ListNode *p1=head, *p2=head->next;
    
            if(NULL == p2)
                return head;
            
            while(p2 != NULL) {
                if(p1->val == p2->val) {
                    p1->next = p2->next;
                    p2 = p2->next;
                }
                else {
                    p1 = p1->next;
                    p2 = p2->next;
                }
            }
            return head;
        }
    };
  • 相关阅读:
    Choosing the Type at Runtime
    User-Defined Components Must Be Capitalized
    Computed property names
    Controlled Components
    Handling Event
    State
    props
    Functional and Class Components
    招聘漂亮的员工
    Spread Syntax
  • 原文地址:https://www.cnblogs.com/libaoquan/p/6808164.html
Copyright © 2011-2022 走看看