删除该链表中所有重复的结点

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针

思路:
在这里插入图片描述
代码如下:

public ListNode deleteDuplication() {
    if(this.head == null) {
        return null;
    }
    ListNode cur = this.head;
    ListNode newHead = new ListNode(-1);
    ListNode tmp = newHead;
    while(cur != null) {
        //重复节点
        if(cur.next != null
                && cur.data == cur.next.data){
            while(cur.next != null
                    && cur.data == cur.next.data) {
                cur = cur.next;
            }
        }else {
            tmp.next = cur;
            tmp = tmp.next;
            cur = cur.next;
        }
    }
    //最后一个节点如果也是重复的
    // 需要将tmp.next = null;
    tmp.next = null;
    return newHead.next;
}
发布了43 篇原创文章 · 获赞 41 · 访问量 1789

猜你喜欢

转载自blog.csdn.net/weixin_45662626/article/details/103109861