【力扣题】给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次

题目链接:删除排序链表中的重复元素,重复元素只保留一个

题意:有一个排序链表,删除所有重复的元素,使得重复的元素保留一个

例如:2-->3-->3-->4-->4-->5

结果为:2-->3-->4-->5

题解:设置一个节点node=head,再设置一个结点为key,让它为node的下一个结点,如果两个结点的值相等,那就让node跳过key这个重复的结点,让他的下一个为可以的下一个,否则,就让node=key,循环向下走;

代码:

class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        if(head==null||head.next==null){
            return head;
        }
        ListNode node=head;
        ListNode key=null;
        while(node!=null){
            key=node.next;
            if(key==null){
                break;
            }
            if(key.val==node.val){
                node.next=key.next;
                key=null;
                continue;
            }
            node=key;
        }
        return head;
    }
}
发布了62 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43669007/article/details/102790728