题解 | #删除链表中重复的结点#

删除链表中重复的结点

https://www.nowcoder.com/practice/fc533c45b73a41b0b44ccba763f866ef

import java.util.*;
/*
 public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}
*/
public class Solution {
    public ListNode deleteDuplication(ListNode pHead) {
        if (pHead == null) {
            return pHead;
        }
        // 构建新链表头节点
        ListNode newHead = new ListNode(0);
        // 将新链表的头节点指向原有链表
        newHead.next = pHead;
        // 对链表进行遍历
        ListNode curNode = newHead;
        // 判断当前节点的下一个节点和下下一个节点,如果不为空则进行遍历
        while(curNode.next != null && curNode.next.next != null){
            // 如果下一个节点的值等于下下一个节点,则将当前节点的指针后移至与下一个节点值不同的节点
            if(curNode.next.val == curNode.next.next.val){
                int theSameValue = curNode.next.val;
                while(curNode.next != null && curNode.next.val == theSameValue){
                    // 后移当前节点的指针
                    curNode.next = curNode.next.next;
                }

            }else{// 遍历下一个节点
                curNode = curNode.next;
            }
            
        }

        return newHead.next;
    }
}

#算法##链表##删除重复节点#
全部评论

相关推荐

点赞 评论 收藏
分享
09-17 10:53
四川大学 C++
牛客91242815...:会写标书没有任何卵用,鉴定为横向垃圾导师的受害者
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务