LeetCode 每日一题 2024/1/14 lc 83. 删除排序链表中的重复元素

题干

LeetCode 每日一题 2024/1/14 lc 83. 删除排序链表中的重复元素_第1张图片

思路

简单的删除链表节点类型的题,只是需要在遍历过程中考虑删除全部的重复的值,为此设置一个临时节点temp,当temp和后续节点nextNode相同时,将一直遍历下去,直到两个节点不等,此时将最初的cur节点的next指针指向temp的next节点。

代码

class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        if(head == null || head.next == null){
            return head;
            //如果节点为0或1 直接返回头节点
        }
        ListNode cur = head;
        while(cur != null){
           ListNode temp = cur;
           ListNode nextNode = temp.next;
           //定义一个nextNode保存当前这次循环找到的最后一个与cur节点相同的节点
           while(nextNode!=null && temp.val == nextNode.val){
               temp = nextNode;
               nextNode = nextNode.next;
           }
           //找完了,将cur的next指针指向temp的next节点(temp是最后一个和cur值相同的节点)
           cur.next = temp.next;
           cur = temp.next;
        }
        return head;
    }
}

你可能感兴趣的:(leetcode刷题,链表,算法,数据结构)