leetcode 83. Remove Duplicates from Sorted List
来源:互联网 发布:linux 文件删不掉原因 编辑:程序博客网 时间:2024/06/16 10:08
法一:遍历一遍,如果发现重复的就去掉这个节点。
/** * 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) return head; ListNode *walker = head; int val_last = head->val; ListNode *node_pre = head; while(walker->next != NULL) { ListNode *node_cur = walker->next; if(!node_cur) return head; if(val_last == node_cur->val) { node_pre->next = node_cur->next; delete node_cur; } else { val_last = node_cur->val; node_pre = node_cur; walker = node_cur; } } return head; }};
法二:一行搞定 牛逼
return h && (h->next = deleteDuplicates(h->next)) && h->next->val == h->val ? h->next : h;
if (h && (h->next = deleteDuplicates(h->next)) && h->next->val == h->val) delete h, h = h->next; return h;
法三:
这个方法也不错。
ListNode* deleteDuplicates(ListNode* head) { ListNode* cur = head; while(cur) { while(cur->next && cur->val == cur->next->val) { cur->next = cur->next->next; } cur = cur->next; } 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) { ListNode *walker = head; while(walker != NULL) { ListNode *node_remove = walker->next; if(node_remove && node_remove->val == walker->val) { walker->next = walker->next->next; delete node_remove; } else walker = walker->next; } return head; }};
0 0
- [LeetCode]83.Remove Duplicates from Sorted List
- [Leetcode] 83. Remove Duplicates from Sorted List
- LeetCode --- 83. Remove Duplicates from Sorted List
- [leetcode] 83.Remove Duplicates from Sorted List
- LeetCode 83. Remove Duplicates from Sorted List
- 【leetcode】83. Remove Duplicates from Sorted List
- 83. Remove Duplicates from Sorted List LeetCode
- leetcode 83. Remove Duplicates from Sorted List
- [LeetCode]83. Remove Duplicates from Sorted List
- 【LeetCode】83. Remove Duplicates from Sorted List
- LeetCode 83. Remove Duplicates from Sorted List
- [leetcode] 83. Remove Duplicates from Sorted List
- leetcode 83. Remove Duplicates from Sorted List
- LeetCode *** 83. Remove Duplicates from Sorted List
- LeetCode - 83. Remove Duplicates from Sorted List
- 【LeetCode】83. Remove Duplicates from Sorted List
- LeetCode 83. Remove Duplicates from Sorted List
- [LeetCode]83. Remove Duplicates from Sorted List
- 微信小程序之一(开始构建)
- 函数
- 数组的特点--Java基础032
- (二)rabbitmq python 踩坑记录
- [Debug之路]OpenCV 遇到的问题记录
- leetcode 83. Remove Duplicates from Sorted List
- 如何更改 eclipse sdk 的版本
- 初识webpack
- 在Unity3D中使用ScriptableObject进行序列化
- Faster R-CNN基础教程
- 转:eclipse的Alt+/不能用解决方法 _2016-12-1
- iOS 检查版本是否是App Store最新版本
- C++中for循环的5种语法
- ASP.NET发布WebService