剑指offer_链表---删除链表中重复的结点
来源:互联网 发布:数据挖掘原理 编辑:程序博客网 时间:2024/06/06 00:45
题目描述
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
解题思路
1, 设置firstNode节点,防止1–1—1–1—1这种状况出现null指针
2,遇到连续的相同值,让pre指向最后一个相同值的下一个。
3,非相同值,指针顺序移位即可
代码实现
/** * */package 链表;/** * <p> * Title:DeleteDuplication * </p> * <p> * Description: * </p> * * @author 田茂林 * @data 2017年8月23日 上午10:08:06 */public class DeleteDuplication { public ListNode deleteDuplication(ListNode pHead) { if (pHead == null) { return null; } ListNode firstNode = new ListNode(-1); firstNode.next = pHead; ListNode pre = firstNode; ListNode p = pHead; while (p != null && p.next != null) { //条件定义的时候,如果函数体里需要做判断,就得加非空,赋值不用 if (p.val == p.next.val) { //与相邻点有相同值 int val = p.val; while (p != null && val == p.val) { //连续相同值 p = p.next; } pre.next = p; }else{ pre = p; p=p.next; } } return firstNode.next; }}
阅读全文
0 0
- 剑指offer_链表---删除链表中重复的结点
- 剑指offer_删除链表中重复的节点
- 剑指offer_链表---链表中环的入口结点
- 【链表】C++删除链表中重复的结点
- 链表------删除链表中所有重复的结点
- 【链表7】删除链表中重复的结点
- 删除链表中重复的结点(链表)
- 剑指offer--删除链表中重复的结点
- 《剑指offer》删除链表中重复的结点
- 剑指offer:删除链表中重复的结点
- [剑指offer]删除链表中重复的结点
- 剑指offer|删除链表中重复的结点
- 《剑指offer》:删除链表中重复的结点
- 剑指Offer:删除链表中重复的结点
- 剑指Offer_56_删除链表中重复的结点
- 《剑指offer》-删除链表中重复的结点
- 剑指offer: 删除链表中重复的结点
- 剑指offer 删除链表中重复的结点
- HDU 6170 Two strings(dp)
- 65.验证数字
- JS调用函数时,加括号与不加括号的区别
- 【NYOJ
- JSP中的编码设置
- 剑指offer_链表---删除链表中重复的结点
- 什么是IIoT工业物联网?
- c标签&List 判断空、获取长度、遍历map、格式化时间
- 透明位图的显示(TransparentBlt函数)
- (lintcode)第452题删除链表中的元素
- Java
- css3弹性盒子
- java中的匿名内部类总结
- WinSCP上传文件Permission Denied