【链表】给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次(Java实现)

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

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

例如: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;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值