[LeetCode]Remove Duplicates from Sorted List II
来源:互联网 发布:java报表技术 编辑:程序博客网 时间:2024/04/28 17:58
struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {}};class Solution {//three pointer, the previous valid pointer, the first pointer of these same elements, current pointer//always think twice about these edge cases public:ListNode *deleteDuplicates(ListNode *head) {// Start typing your C/C++ solution below// DO NOT write int main() functionListNode* preValid = NULL;ListNode* preSame = NULL;ListNode* cur = head;while (cur){if(!preSame) preSame = cur;else if(cur->val != preSame->val && preSame->next == cur)//continuous different then preSame can be the preValid{if(!preValid){head = preSame;preValid = preSame;}else{preValid->next = preSame;preValid = preSame;}preSame = cur;}else if (cur->val != preSame->val && preSame->next != cur)//not continuous differentpreSame = cur;cur = cur->next;}//4 special edge casesif(!preValid && preSame && preSame->next != NULL) return NULL;else if(!preValid && preSame && preSame->next == NULL) return preSame;else if(preValid && preSame->next != NULL) preValid->next = NULL;else if(preValid && preSame->next == NULL) preValid->next = preSame;return head;}};
second time
/** * 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) { // Start typing your C/C++ solution below // DO NOT write int main() function ListNode dummy(-1); ListNode* savePtr = &dummy; ListNode* cur = head; ListNode* prev = &dummy; while(cur != NULL) { if((prev == &dummy || prev->val != cur->val) && (cur->next == NULL || cur->next->val != cur->val)) { savePtr->next = cur; savePtr = savePtr->next; } prev = cur; cur = cur->next; } savePtr->next = NULL; return dummy.next; }};
- 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
- [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
- [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
- Leetcode: Remove Duplicates from Sorted List II
- leetcode Remove Duplicates from Sorted List II
- [LeetCode] Remove Duplicates from Sorted List II
- PID工业算法
- [LeetCode]Remove Duplicates from Sorted Array
- [LeetCode]Remove Duplicates from Sorted Array II
- [LeetCode]Remove Duplicates from Sorted List
- Python正则表达式指南
- [LeetCode]Remove Duplicates from Sorted List II
- uva 565 Pizza Anyone?
- 最大间隙问题
- [LeetCode]Remove Element
- 如何在linux下启用ip转发功能
- ZJUT 1001 A+B Problem
- [LeetCode]Remove Nth Node From End of List
- spring管理hibernate延迟加载配置(openSessionInView)
- [LeetCode]Restore IP Addresses