剑指offer——删除链表中重复的结点
2016-06-26 23:58
330 查看
题目描述:
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路:
因为需要找到重复的节点,所以对链表进行遍历,而且在遍历的过程中需要对每个当前遍历的节点以及后面的节点进行比较直到遇到下一个节点不与当前节点重复。如果下一个节点与当前遍历的节点不重复,则继续遍历,直到把整个链表遍历结束代码实现:
public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } public class Solution { public ListNode deleteDuplication(ListNode pHead) { if(pHead == null) return pHead; ListNode firstNode = new ListNode(-1); firstNode.next = pHead; ListNode preNode = firstNode; ListNode curNode = pHead; while(curNode != null && curNode.next != null){ if(curNode.val == curNode.next.val){ int val = curNode.val; while(curNode != null && curNode.val == val){ curNode = curNode.next; } preNode.next = curNode; }else{ preNode = curNode; curNode = curNode.next; } } return firstNode.next; } }
相关文章推荐
- Node.js 工具模块
- Openstack组件部署 — Nova_安装和配置Controller Node
- 引用新浪、Google、微软的CDN加载jQuery
- 关于理解重载的深入学习
- ESRI官网关于Javascript的内容(3)__将3.x升级到4.0
- Angular2开发笔记
- 05、css控制文本与字体
- 让HTML5, CSS3, Bootstrap3在虐心的IE8上爬模滚打
- 前端知识点试题记录
- 04、css控制背景
- Node.js GET/POST请求
- 03、css宽度与高度
- Jquery
- Javascript
- 02、css选择器
- 上传图片前端js压缩
- 01、css引入方式
- Node.js 吊炸天的文件操作
- 关于闭包的理解(JS学习小结)
- (OK) cannot locate symbol "__sF" referenced by