美文网首页
在链表中删除重复的节点

在链表中删除重复的节点

作者: 凯玲之恋 | 来源:发表于2020-09-13 10:03 被阅读0次

在一个排序的链表中,如何删除重复的节点?

链表1->2->3->3->4->4->5,处理后为 1->2->5


public class E18DeleteDuplicateListNode {
    //删除链表中重复的节点

    private static class ListNode{
        int value;
        ListNode nextNode;
    }

    public static void deleteDuplication(ListNode head){
        if (head == null)
            return;
        //运用两个指针
        ListNode preNode = null;
        ListNode node = head;
        while(node != null){
            ListNode nextNode = node.nextNode;
            //发现重复节点
            if (nextNode != null && nextNode.value == node.value){
                //删除重复节点
                int value = node.value;
                ListNode toBeDeleted = node;
                while(toBeDeleted != null && toBeDeleted.value == value){
                    nextNode = toBeDeleted.nextNode;
                    //交由GC处理
                    toBeDeleted.nextNode = null;
                    toBeDeleted = nextNode;
                }
                //更改节点指向
                if (preNode == null){
                    head = nextNode;
                }
                else
                    preNode.nextNode = nextNode;
                node = nextNode;
            }
            //未发现则将指针向前推进
            else{
                preNode = node;
                node = node.nextNode;
            }
        }
    }
}

参考

删除链表的节点(Java实现)

相关文章

  • 删除链表中重复的节点

    删除链表中重复的节点在一个排序的链表中,如何删除重复的节点?

  • 18-删除链表节点、删除链表重复节点

    1. 删除链表节点 2. 删除链表中的重复节点 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没...

  • 删除链表中重复的节点

    《剑指offer》面试题18:题目二:删除链表中重复的节点。 题目:在一个排序的链表中,如何删除重复的节点?例如,...

  • Leetcode总结 -- 链表

    目录 链表的基本操作 改/遍历:while(?) 查: 返回倒数K个节点 增/删除:反转链表,删除链表中的重复节点...

  • 删除链表中的重复节点

    题目:在一个排序的链表中,如何删除重复的节点? 思路:删除重复节点同样要考虑边界值的问题,头节点为重复,尾节点为重...

  • 2019-02-19

    java删除链表中重复的节点(保留一个节点)

  • Day 2 删除无序链表中的重复节点

    算法 Day2 删除无序链表中的重复节点,保留一个 给定一个无序单向链表的头节点,删除内部的重复节点,使其内部节点...

  • LeetCode 82. 删除排序链表中的重复元素 II

    82. 删除排序链表中的重复元素 II 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出...

  • 82. 删除排序链表中的重复元素 II

    82. 删除排序链表中的重复元素 II 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出...

  • leetCode进阶算法题+解析(十二)

    删除排序链表中的重复元素2 题目:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的...

网友评论

      本文标题:在链表中删除重复的节点

      本文链接:https://www.haomeiwen.com/subject/usrnektx.html