LeetCode题解java算法: 83. 删除排序链表中的重复元素

存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。

返回同样按升序排列的结果链表。

示例 1:
LeetCode题解java算法: 83. 删除排序链表中的重复元素_第1张图片

输入:head = [1,1,2]
输出:[1,2]

LeetCode题解java算法: 83. 删除排序链表中的重复元素_第2张图片

示例 2:

输入:head = [1,1,2,3,3]
输出:[1,2,3]

链表解题思路:

/**
 * Definition for singly-linked list.
    * public class ListNode {
    *     int val;
    *     ListNode next;
    *     ListNode() {}
    *     ListNode(int val) { this.val = val; }
    *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
    * }
 */
class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        //判断链表是否为空
        if(head==null){
            return head;
        }
        ListNode cur=head;
        //循环链表下一个是否为空
        while (cur.next!=null){
            //如果数据值相等,则将指针向后移动一位,形成新的链表  否则继续循环
            if(cur.val==cur.next.val){
                cur.next=cur.next.next;
            }else{
                cur=cur.next;
            }
        }
        return  head;
    }
}

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