Java实现单链表(已排序)去重(保留重复元素第一次出现的节点)
来源:互联网 发布:sql按周统计数据 编辑:程序博客网 时间:2024/06/07 04:43
思路很简单,若p->next的值和p->next->next的值相等,则将p->next->next赋值给p,删除p->next;重复上述过程,直到链表尾部。代码中使用的节点类,链表类和测试类与上一篇博文《Java实现单链表部分翻转》 一样,在这里只给出去重的函数,在LinkList中定义。
public void DeleteDuplicateNode(Node head) { Node pPre=head;//将链表的第一个节点赋给pPre Node pCur; while(pPre!=null) { pCur=pPre.next; if( pCur!=null && pCur.data==pPre.data) //这里要特别注意,在下面详细说明 { pPre.next=pCur.next; } else {pPre=pCur;} } }
if( pCur!=null && pCur.data==pPre.data)在这里要特别注意,java中的运算符&&只要第一个条件不满足(短路),后面条件就不再判断,而&运算符两边的都要判断;如果将pCur.data==pPre.data放在运算符左边,会引起空指针异常,因为pCur可能为空。
阅读全文
0 0
- Java实现单链表(已排序)去重(保留重复元素第一次出现的节点)
- 给定一个字符串,去重(重复的字符只保留第一次出现的)
- 去重排序List(Java实现)
- 原生JS去重(二)--去重且判断字符重复出现的次数
- 删除已排序单链表中重复的元素
- Java处理重复,重复的元素只保留一个。
- 输入一串长度为N的整数数组,去除掉重复的元素,但是需要保留该元素最后出现的那个。
- Java实现数组去重、排序操作
- vecor元素排序去重
- Java实现-删除排序链表的重复元素1
- 数组去重 (去除数组中的重复元素)
- java8 stream初试,map排序,list去重,统计重复元素个数,获取map的key集合和value集合
- python list 去重重复元素问题
- 保留重复出现的字符串
- 移除掉数组里面的重复元素, 但是对于每种元素保留最后出现的那个
- 解析、查找数组中重复出现的元素(Java)
- 将一个数组中的重复元素保留一个其他的清零(Java)
- 【leetcode】已排序数组去重
- JZOJ 5489. 【清华集训2017模拟11.28】海明距离
- 图片的二次采样
- java之反射(RPC中应用demo)
- SVN Unable to connect to a repository at URL
- MyBatis快速入门
- Java实现单链表(已排序)去重(保留重复元素第一次出现的节点)
- ViewFlipper上下翻滚轮播
- CSS: 块级元素与内联元素(行内元素)
- jquery以form形式向controller传值
- dependencies与dependencyManagement的区别
- struts2的框架解析第4篇action配置的各项默认值
- MYSQL——《SQL必知必会》学习笔记
- Android px,sp,dp,sp 之间的关系
- 关于类