当前位置:   article > 正文

删除链表中重复的结点(java)_java链表删除重复节点

java链表删除重复节点

描述

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

数据范围:链表长度满足 0 ≤ n≤ 1000  ,链表中的值满足 1 ≤ val ≤ 1000

进阶:空间复杂度 O(n)\O(n) ,时间复杂度 O(n) \O(n)

例如输入{1,2,3,3,4,4,5}时,对应的输出为{1,2,5},对应的输入输出链表如下图所示:

示例1

输入:

{1,2,3,3,4,4,5}

复制返回值:

{1,2,5}

复制

示例2

输入:

{1,1,1,8}

复制返回值:

{8}

题解

  1. /*
  2. public class ListNode {
  3. int val;
  4. ListNode next = null;
  5. ListNode(int val) {
  6. this.val = val;
  7. }
  8. }
  9. */
  10. public class Solution {
  11. public ListNode deleteDuplication(ListNode pHead) {
  12. ListNode newHead = new ListNode(-1);
  13. ListNode cur = pHead;
  14. ListNode tmp = newHead;
  15. while (cur != null) {
  16. if (cur.next != null && cur.val == cur.next.val) {
  17. while (cur.next != null && cur.val == cur.next.val) {
  18. cur = cur.next;
  19. }
  20. cur = cur.next;
  21. } else {
  22. tmp.next = cur;
  23. cur = cur.next;
  24. tmp = tmp.next;
  25. }
  26. }
  27. tmp.next = null;
  28. return newHead.next;
  29. }
  30. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/983617
推荐阅读
相关标签
  

闽ICP备14008679号