31:Remove Duplicates from Sorted List II
来源:互联网 发布:京东程序员待遇 编辑:程序博客网 时间:2024/06/03 22:39
本题解法代码的思想及编写参考了网址https://github.com/soulmachine/leetcode#leetcode题解
题目: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.
解题代码版本一:
//迭代版本//时间复杂度 O(n),空间复杂度O(1)class Solution {public: ListNode* deleteDuplicates(ListNode* head) { if (head == nullptr) return head; ListNode dummy(-1); // 头结点 dummy.next = head; ListNode *prev = &dummy, *cur = head; while (cur != nullptr) { bool duplicated = false; while (cur -> next != nullptr && cur -> val == cur -> next -> val) { duplicated = true; ListNode *temp = cur; cur = cur -> next; delete tmp; } if (duplicated) { //删除重复的最后一个元素 ListNode* temp = cur; cur = cur -> next; delete temp; prev -> next = cur; } else { prev -> next = cur; prev = prev -> next; cur = cur -> next; } } return dummy.next; }};
解题代码版本二:
//递归版本//时间复杂度O(n),空间复杂度O(1)class Solution {public: ListNode* deleteDuplicates(ListNode* head) { if (head == nullptr || head -> next == nullptr) return head; ListNode* p = head -> next; if (head -> val == p -> val) { while (p && head -> val == p -> val) { ListNode* tmp = p; p = p -> next; delete tmp; } delete head; return deleteDuplicate(p); } else { head -> next = deleteDuplicates(head -> next); return head; } }};
0 0
- 31:Remove Duplicates from Sorted List II
- LeetCode: Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- [Leetcode] Remove Duplicates from Sorted List II
- LeetCode: Remove Duplicates from Sorted List II
- [Leetcode] Remove Duplicates from Sorted List II
- [leetcode] Remove Duplicates from Sorted List II
- [LeetCode] Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- [leetcode] Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- Remove duplicates from sorted list II
- Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- [LeetCode]Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- Octave安装之docker容器安装_CENTOS篇
- win10装 babel 实战
- sina微博输入功能实现
- js--客户端检测
- 用Graphviz可视化函数调用
- 31:Remove Duplicates from Sorted List II
- 最长无重复字符子串
- flume概念入门
- LeetCode: same-tree
- 文章标题
- IOC/Di与Aop
- 分库分表的几种常见形式以及可能遇到的难题
- Properties类给你带来一点小帮助
- 【Sql Server】创建修改SQL Server数据库