《剑指offer》删除链表中重复的节点
来源:互联网 发布:苹果手机 解压缩软件 编辑:程序博客网 时间:2024/06/01 09:56
题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
解析:思想是用集合list存储所有没有重复的元素,然后构造单链表返回就好了。
/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/import java.util.ArrayList;import java.util.List;public class Solution { public ListNode deleteDuplication(ListNode pHead) { ListNode head=pHead; List<Integer> list = new ArrayList<>();//需要构造的单链表 List<Integer> removed = new ArrayList<>();//记录移除过的值 Object obj=null; while (head!=null){ if(!list.contains(head.val)&&(!removed.contains(head.val))){ list.add(head.val); }else { obj=head.val; list.remove(obj);//list移除的对象,需要转为Object对象再移除 removed.add(head.val); } head=head.next; } if(list.size()==0){//有可能移除后就没有节点了,例如2->2->2,移除后list为空了 return null; } pHead = new ListNode(list.get(0)); for(int i=list.size()-1;i>=1;i--){//头插法创建单链表 ListNode node = new ListNode(list.get(i)); node.next=pHead.next; pHead.next=node; } return pHead; }}
阅读全文
0 0
- 剑指offer-删除链表中重复的节点
- 剑指offer-----删除链表中重复的 节点
- 《剑指offer》删除链表中重复的节点
- 剑指Offer--删除链表中重复的节点
- 剑指offer:删除重复的节点
- 剑指offer-57:删除链表中重复节点
- 8.剑指offer-删除链表中重复节点
- 剑指offer-删除链表中重复节点
- 剑指offer 57 - 删除链表中重复的节点
- 剑指offer系列之五十八:删除链表中重复的节点
- 剑指offer(59):删除链表中重复的节点
- 《剑指Offer》面试题57:删除链表中重复的节点
- 剑指offer-----删除链表中重复的节点(java版)
- 【剑指offer】面试题18:删除链表中重复的节点
- 剑指Offer—56—删除链表中重复的节点
- 剑指offer之删除链表中重复的节点
- 剑指offer-删除链表重复节点
- 【剑指offer-解题系列(57)】删除链表中重复的节点
- Linux下MySQL主从复制(二)
- c++的vector赋值方法汇总
- hadoop伪分布式布置安装
- 金融风控-->申请评分卡模型-->logisticRegression建模
- hibernate配置文件hibernate.cfg.xml和.hbm.xml的详细解释
- 《剑指offer》删除链表中重复的节点
- Linux 中怎么设置计划任务:cron 与 anacron
- java web.xml中加载顺序
- POJ1013-水模拟-Counterfeit Dollar
- Linux面试题
- Keyboard Layouts
- python theano中的shared variable
- Java web开发加载图片路径的两种方式
- 日期计算