• 【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. 定义pCurNode,pNextNode两个节点指针;

    2. pCurNode初始化为链表头节点指针;pNextNode初始化为下一节点

    3. 判断pCurNode是否有效;

    4. 判断相邻两个节点是否相同,如相同删除后一个相同的节点(其实就是将pCurNode的next指针指向删除节点的下一节点即可),再循环比较原来删除节点后的节点值是否相同。如(1, 1)、(1,1, 1);

    5. 如相邻两个节点不同,则将当前节点指针后移一个节点;

    6. 重复3、4、5;

    class Solution
    {
    public:
        ListNode* deleteDuplicates(ListNode* head) 
        {
            ListNode* pCurNode = head;
            ListNode* pNextNode = nullptr;
            while (pCurNode)
            {
                pNextNode = pCurNode->next;
                if (pNextNode&&pNextNode->val == pCurNode->val)
                {
                    pCurNode->next = pNextNode->next;
                }
                else
                {
                    pCurNode = pNextNode;
                }
            }
    
            return head;
        }
    
        void Print(ListNode* head)
        {
            ListNode* pCurNode = head;
            while (pCurNode)
            {
                printf(" %d", pCurNode->val);
                pCurNode = pCurNode->next;
            }
    
            printf("
    ");
        }
    };
  • 相关阅读:
    velocity masterplate 第一个程序的运行
    java 关于集合框架
    java 关于>>>位运算
    QCA wifi驱动强制为HT40
    Linux内核调试方法的总结(转载)
    移动端利用webkitbox水平垂直居中
    Under Construction to Beta
    网站自动备份
    writely 邀请?
    Google Carlendar coming ?
  • 原文地址:https://www.cnblogs.com/kernel0815/p/5143623.html
Copyright © 2020-2023  润新知