删除链表中重复的结点

题目描述

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5。

题目链接: 删除链表中重复的结点

代码

/**
* 标题:删除链表中重复的结点
* 题目描述
* 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
* 题目链接:
* https://www.nowcoder.com/practice/fc533c45b73a41b0b44ccba763f866ef?tpId=13&&tqId=11209&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
*/
public class Jz56 { public ListNode deleteDuplication(ListNode pHead) {
if (pHead == null || pHead.next == null) {
return pHead;
}
ListNode next = pHead.next;
if (pHead.val == next.val) {
while (next != null && pHead.val == next.val) {
next = next.next;
}
return deleteDuplication(next);
} else {
pHead.next = deleteDuplication(pHead.next);
return pHead;
}
} public static void main(String[] args) {
ListNode pHead = new ListNode(1);
pHead.next = new ListNode(1);
pHead.next.next = new ListNode(1);
pHead.next.next.next = new ListNode(1);
pHead.next.next.next.next = new ListNode(1);
pHead.next.next.next.next.next = new ListNode(1);
pHead.next.next.next.next.next.next = new ListNode(1); System.out.println("删除重复节点前的链表");
ListNode cur = pHead;
while (cur != null) {
System.out.print(cur.val + " ");
cur = cur.next;
}
System.out.println(); System.out.println("删除重复节点后的链表");
Jz56 jz56 = new Jz56();
ListNode result = jz56.deleteDuplication(pHead);
cur = result;
while (cur != null) {
System.out.print(cur.val + " ");
cur = cur.next;
}
}
}

【每日寄语】 每个充满希望的清晨,告诉自己努力,是为了遇见更好的自己。

最新文章

  1. [转]SpringMVC Controller介绍及常用注解
  2. KnockoutJS 3.X API 第七章 其他技术(2) 使用扩展器来增加可观察量(监控属性)
  3. 计算软键盘的高度然后确定自定义的View的具体位置
  4. Hermite Curve
  5. MySQL主从复制、半同步复制和主主复制
  6. [LeetCode] Sudoku Solver(迭代)
  7. HDU2838Cow Sorting(树状数组)
  8. [LeetCode#247] Strobogrammatic Number II
  9. 基础笔记(一)Java 集合
  10. ArcGIS动态文本
  11. 【转】unity3d 各种优化综合
  12. c++容器使用总结(转载)
  13. JavaWeb框架_Struts2_(七)----->文件的上传和下载
  14. Spring RPC 入门学习(2)-获取Map对象
  15. 【spring】之事物配置,声明式事务管理和基于@Transactional注解的使用
  16. C语言 · 成绩的等级输出
  17. JQuery 控制div滚动条保持最下
  18. easyui学习笔记12—tab标签页的添加和删除
  19. json格式化显示样式js代码分享
  20. [CF864F]Cities Excursions

热门文章

  1. STM32定时器触发ADC多通道连续采样,DMA缓存结果
  2. Hbase 项目
  3. django之集成阿里云通信(发送手机短信验证码)
  4. VC++ 启用内存泄露检测
  5. 微服务架构 | 10.3 使用 Zipkin 可视化日志追踪
  6. halcon视觉入门扫盲篇
  7. c语言之sizeof总结+strlen函数
  8. iOS9新特性之常见关键字
  9. git rebase git merge
  10. Nodejs基于Express使用html模板