《剑指Offer》面试题57:删除链表中重复的节点
来源:互联网 发布:android ble 接收数据 编辑:程序博客网 时间:2024/05/16 19:11
题目:在一个排序的链表中,如何删除重复的节点?
样例输入: 1 2 3 3 4 4 5
样例输出: 1 2 5
1.新建一个头节点,以防第一个节点被删除。
2.保存当前节点上个节点,循环遍历整个链表,如果当前节点的值与下一个节点的值相等,则将当前节点的值与next.next节点的值比较,直到不相等或者null为止,最后将当前节点的上个节点pre指向最后比较不相等的节点。
3.如果当前节点与next节点不相等,则直接节点指针全部向后移动一位。
package com.test20160709;/** * Created by yan on 2016/7/9. */public class DeleteDuplication { public ListNode deleteDuplication(ListNode pHead) { if(pHead==null) return pHead; ListNode first = new ListNode(0); first.next = pHead; ListNode p = pHead; ListNode pre = first; while (p!=null&&p.next!=null){ if(p.val==p.next.val) { int val = p.val; while(p!=null&&p.val==val) p = p.next; pre.next = p; }else { pre= p; p = p.next; } } return first.next; } public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }}
0 0
- 《剑指Offer》面试题57:删除链表中重复的节点
- 【剑指offer】面试题18:删除链表中重复的节点
- 剑指offer-面试题57:删除链表中重复的结点
- 剑指offer--面试题57:删除链表中重复的结点
- 剑指offer 面试题57 删除链表中重复的结点
- 剑指offer-面试题57-删除链表中重复的结点
- 剑指offer 面试题57 删除链表中重复的结点
- 【剑指Offer】面试题57:删除链表中重复的结点
- 剑指offer面试题57 删除链表中重复的结点
- 剑指offer面试题[57]-删除链表中重复的结点
- 【剑指Offer】面试题57:删除链表中重复的结点
- 剑指offer面试题18:删除链表中重复的节点-java
- 剑指offer-删除链表中重复的节点
- 剑指offer-----删除链表中重复的 节点
- 《剑指offer》删除链表中重复的节点
- 剑指Offer--删除链表中重复的节点
- 《剑指Offer》学习笔记--面试题57:删除链表中重复的结点
- 【剑指Offer学习】【面试题57:删除链表中重复的结点】
- MySQL 连接数和状态查看命令
- 单例模式
- 直接复制的VMware虚拟机镜像如何更改网卡的MAC地址
- Label设置行间距
- 五分钟学会之数据库~
- 《剑指Offer》面试题57:删除链表中重复的节点
- C#控制台 显式初始化二维矩形数组
- 快速排序算法
- EC-JET喷码机报EC2.01偏转板电压故障
- Sqoop-1.4.5用户手册
- jQuery插件之Cookie
- "围观"设计模式(30)--结构型设计模式总结(适配器、代理、装饰、外观、桥梁、组合、享元)
- VS2010:error C2061: 语法错误
- JS取得Tree的ID