java删除单链表中的重复节点
来源:互联网 发布:手机快速充电软件 编辑:程序博客网 时间:2024/05/18 22:43
package offer;
/*
* 1、删除单链表中的重复节点
* 输入 : 2, 3, 3, 5, 7, 8, 8, 8, 9, 9, 10
* 输出 : 2 5 7 10
*
* 2、单链表中重复节点只保留一个
* 输入 : 2, 3, 3, 5, 7, 8, 8, 8, 9, 9, 10
* 输出 : 2 3 5 7 8 9 10
*
*
*/
public class DeleteReNode {
//删除单链表中的重复节点public static 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改为注释的while,即可由情形1得到2 /* while(p.next != null && p.next.val == val) { p.next = p.next.next; } */ while(p != null && p.val == val) { p = p.next; } pre.next = p; }else { pre= p; p = p.next; } } while(first.next != null) { System.out.print(first.next.val + " "); first = first.next; } return first.next;}public static void main(String[] args) { //-构造单链表start---- int[] num = { 2, 3, 3, 5, 7, 8, 8, 8, 9, 9, 10 }; ListNode head = new ListNode(num[0]); ListNode pre = head; for (int i = 1; i < num.length; i++) { ListNode node = new ListNode(num[i]); pre.next = node; pre = node; } //-构造单链表end----- deleteDuplication(head);}
}
class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
阅读全文
0 0
- java删除单链表中的重复节点
- 删除单链表中的重复节点(删除重复项)
- 单链表删除重复节点
- 单链表删除重复节点
- 删除单链表中的重复节点(删除多余项)
- 删除链表中的重复节点
- 删除链表中的重复节点
- 删除有序链表中的重复节点
- 删除有序链表中的重复节点
- Java单链表基本操作(六)--删除重复节点;
- 删除链表重复节点-java
- 删除链表中的重复节点、剩余节点逆序输出
- 删除链表中的重复节点、剩余节点逆序输出
- 删除链表中的重复节点、剩余节点逆序输出
- 删除重复节点
- 删除重复节点
- leetcode_83. Remove Duplicates from Sorted List 删除单链表中的重复节点
- 057_删除聊表中的重复的节点
- python中的面向对象
- Java多线程(1)
- 写出这个数(20)
- 自动化脚本腾讯云配置集群(二)大集群SSH免密登录
- 二级函数指针
- java删除单链表中的重复节点
- Java笔记--03
- (转)高官:如何监管数字货币
- python列表推导式和集合
- 双目视觉立体标定
- bzoj 3674 可持久化并查集加强版
- PIXHAWK2之输入命令部分翻译
- 【前端】react学习阶段总结,学习react、react-router与redux的这些事儿
- 深入理解JVM之走进Java