[LeetCode]83. Remove Duplicates from Sorted List
2016-09-04 16:07
323 查看
83. Remove Duplicates from Sorted List
Given a sorted linked list, delete all duplicates such that each element appear only once.For example,
Given
Given
对于给定排序链表进行去重处理。1)对于空链表或者只有一个节点的链表不存在重复的问题,故可直接返回。2)循环条件,当节点为最后一个节点,则无需继续比较了。因为之前的比较是当前节点和后一节点进行的。所以最后一个节点已经参与过比较了。无需继续。3)若当前节点值等于后一节点值时,为*list赋值下一个节点即可。并及时释放删除节点的内存,防止出现内存泄漏。4)若值不相等,list指向下个next即可。
1)*list作为头节点出现,表示头节点。
2)*list作为其他节点时,*list具有两重意思。一是代表当前节点,二是对上一节点next的解引用。故为*list赋值即为给上一节点的next的赋值。
Given a sorted linked list, delete all duplicates such that each element appear only once.For example,
Given
1->1->2, return
1->2.
Given
1->1->2->3->3, return
1->2->3.
对于给定排序链表进行去重处理。1)对于空链表或者只有一个节点的链表不存在重复的问题,故可直接返回。2)循环条件,当节点为最后一个节点,则无需继续比较了。因为之前的比较是当前节点和后一节点进行的。所以最后一个节点已经参与过比较了。无需继续。3)若当前节点值等于后一节点值时,为*list赋值下一个节点即可。并及时释放删除节点的内存,防止出现内存泄漏。4)若值不相等,list指向下个next即可。
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* deleteDuplicates(struct ListNode* head) { if ( head == NULL || head->next == NULL ) { return head; } struct ListNode **list = &head; while ( (*list)->next != NULL ) { if ( (*list)->val == (*list)->next->val ) { struct ListNode *delete = *list; (*list) = (*list)->next; free(delete); } else { list = &(*list)->next; } } return head; }注:
1)*list作为头节点出现,表示头节点。
2)*list作为其他节点时,*list具有两重意思。一是代表当前节点,二是对上一节点next的解引用。故为*list赋值即为给上一节点的next的赋值。
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- gosyd/go1.6.slide at master · davecheney/gosyd · GitHub
- Windows Server 2008 Code "Longhorn" Beta 3 提供下载
- dedecms v5.1 WriteBookText() code injection vul注入漏洞
- 在C#中生成与PHP一样的MD5 Hash Code的方法
- PHP通过微信跳转的Code参数获取用户的openid(关键代码)
- Live Write 的代码高亮插件 Paste Code
- ERROR CODE: 1175 YOU ARE USING SAFE UPDATE MODE AN
- IIS7.5 Error Code 0x8007007e HTTP 错误 500.19的解决方法
- Microsoft Windows Server Code Name"Longhorn"Beta 3 正式发布! 下载
- Microsfot .NET Framework4.0框架 安装失败的解决方法
- Windows 下Spark 快速搭建Spark源码阅读环境
- Leanote集成Ace代码编辑器, 程序员的最爱
- 好代码是廉价的代码
- Optimizing Java Code(Pro Android Apps Performance Optimization)
- data,bdata,idata,pdata,xdata,code存储类型与存储区bit
- Writing Efficient Android Code(转)
- 常见HTTP状态(304,200等)
- 转:关于keil中data,idata,xdata,pdata,code的问题