2020--07--17 链表消除重复元素

remove-duplicates-from-sorted-list

http://www.nowcoder.com/questionTerminal/c087914fae584da886a0091e877f2c79

题目描述
删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次

例如: 
给出的链表为1->1->2,返回1->2. 
给出的链表为1->1->2->3->3,返回1->2->3.

Given a sorted linked list, delete all duplicates such that each element appear only once.

For example,
Given1->1->2, return1->2.
Given1->1->2->3->3, return1->2->3. 

首先,链表为空直接返回
其次,如果当前结点值与下一结点的值相等
最后要注意一下else的位置,比如说结点1和2比较后相等把2消去,这个时候就不能把指针指向下一结点了,要继续比较1和3,所以消去结点和指向下一结点只能二选一

图片说明
代码实现:

public ListNode deleteDuplicates (ListNode head) {
        if(head==null)return head;
        ListNode temp = head;
        while(temp.next!=null){
            if(temp.val==temp.next.val){
                temp.next=temp.next.next;
            }else{
                temp=temp.next;
            }
        }
        return head;
    }
全部评论
赞,但是图中的节点数字错了
1 回复 分享
发布于 2021-01-22 17:59

相关推荐

不愿透露姓名的神秘牛友
11-27 10:46
点赞 评论 收藏
分享
10-15 16:27
门头沟学院 C++
LeoMoon:建议问一下是不是你给他付钱😅😅
点赞 评论 收藏
分享
评论
23
5
分享
牛客网
牛客企业服务