Leetcode: Remove Duplicates from Sorted List II
来源:互联网 发布:bx5u3图文编辑软件 编辑:程序博客网 时间:2024/06/15 14:36
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
.
比较简单,记下是否重复即可。
/** * 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 || head->next == NULL) { return head; } ListNode *prev = NULL; ListNode *cur = head; head = NULL; bool duplicate = false; while (cur != NULL && cur->next != NULL) { if (cur->val == cur->next->val) { duplicate = true; } else { if (!duplicate) { if (head == NULL) { head = prev = cur; } else { prev->next = cur; prev = cur; } } duplicate = false; } cur = cur->next; } if (prev != NULL) { if (duplicate) { prev->next = NULL; } else { prev->next = cur; } } else if (!duplicate) { head = prev = cur; } return head; }};
========================第二次============================
/** * 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 || head->next == NULL) { return head; } ListNode* cur = head->next; ListNode* prev = head; ListNode* new_head = new ListNode(-1); ListNode* new_cur = new_head; bool duplicated = false; while (cur != NULL) { if (cur->val == prev->val) { duplicated = true; } else { if (!duplicated) { new_cur->next = prev; new_cur = prev; } duplicated = false; } prev = cur; cur = cur->next; } if (!duplicated) { new_cur->next = prev; } else { new_cur->next = NULL; } head = new_head->next; delete new_head; return head; }};
0 0
- 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
- 使用AXMLParser解析apk中的AndroidManifest.xml
- Linux内核抢占实现机制分析(转)
- Android中Activity、Service和线程之间的通信
- tar 解压缩命令
- WAP 2.0网站是用XHTML MP基础(手机网站开发基础技术)
- Leetcode: Remove Duplicates from Sorted List II
- 搜索智能提示测试程序
- Android 应用程序之间内容分享详解(一)
- C/C++语言中闭包的探究及比较
- ubuntu su 密码
- Android 应用程序之间内容分享详解(二)
- 体验云编程——IOS脚本学习门户
- 黑马程序员_注解
- 排序--快速排序算法的思想及其代码实现