首页 > 其他 > 详细

剑指Offer——删除链表中重复的结点

时间:2019-07-14 12:48:59      阅读:85      评论:0      收藏:0      [点我收藏+]

1、题目描述

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

2、代码实现

import java.util.HashMap;
public class Solution {
    public ListNode deleteDuplication(ListNode pHead)
    {
     //1、临界值的判断:
        if (pHead == null) {
            return null;
        }
        HashMap<Integer, Integer> hashMap = new HashMap<>();
        ListNode temp = pHead;
        while (temp != null) {
            if (hashMap.containsKey(temp.val) == true) {
                hashMap.put(temp.val, hashMap.get(temp.val) + 1);
            } else {
                hashMap.put(temp.val, 1);
            }
            temp = temp.next;
        }
        temp = pHead;
        ListNode newHead = new ListNode(-1);
        ListNode NTemp = newHead;
        while (temp != null) {
            if (hashMap.get(temp.val) > 1) {
                temp = temp.next;
            } else {
                NTemp.next = new ListNode(temp.val);
                NTemp = NTemp.next;
                temp = temp.next;
            }
        }
        return newHead.next;
    }
}

  

剑指Offer——删除链表中重复的结点

原文:https://www.cnblogs.com/BaoZiY/p/11183573.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!