remove duplicates from sorted list II
来源:互联网 发布:cf总是网络异常 编辑:程序博客网 时间:2024/06/14 17:48
题目:
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given1->2->3->3->4->4->5, return1->2->5.
Given1->1->1->2->3, return2->3.
/** * 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) return NULL; ListNode dummy(-1); dummy.next = head; ListNode* prev = &dummy, *cur = head; while (cur) { bool duplicated = false; while (cur->next != NULL && cur->val == cur->next->val) { duplicated = true; ListNode* tmp = cur; cur = cur->next; delete tmp; } if (duplicated) //delete last duplicate node { ListNode* tmp = cur; cur = cur->next; delete tmp; continue; } prev->next = cur; prev = prev->next; cur = cur->next; } prev->next = cur; return dummy.next; }};
递归:(看的答案)
class Solution{ public: ListNode* deleteDuplicates(ListNode* head) { if (head == NULL || head->next == NULL) return NULL; 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 deleteDuplicates(p); } else { head->next = deleteDuplicates(head->next); return head; } } };
0 0
- 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
- [leetcode]Remove Duplicates from Sorted List II
- 编写第一个 Arduino 程序
- 基本过程: 小区搜索
- Swift 初始化Initialization
- Eclipse真机测试注意事项
- Android View体系(七)从源码解析View的measure流程
- remove duplicates from sorted list II
- (4)排序算法——合并排序
- java中编码
- STM32进入HardFault_Handler处理办法
- 3105: [cqoi2013]新Nim游戏|贪心|高斯消元
- 开源网址
- hdu1075 What Are You Talking About(map的get读入)
- android studio提示 Plugin with id "com.android.library" not found解决方法
- 循环链表C++实现