LeetCode笔记——83排除链表中的重复元素

题目:

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

示例 1:

输入: 1->1->2
输出: 1->2

示例 2:

输入: 1->1->2->3->3
输出: 1->2->3

思路:题目中给出的已经是排序后的链表。因此可以直接遍历链表的每个元素,比较每个值与后一个值是否相等。若相等,则改变链接。对链表还是不熟悉。。。。。

代码:

class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        ListNode tem=head;
        while(tem!=null&&tem.next!=null)
        {
            if(tem.val==tem.next.val)
            {
                tem.next=tem.next.next;
            }
            else
            {
                tem=tem.next;
            }
        }
       // return tem;  //我自己重新写代码的时候把这块写错了,tem最后是指向链表的最后一个位置

return head;
    }
}

LeetCode推荐解法:

public ListNode deleteDuplicates(ListNode head) {
    ListNode current = head;
    while (current != null && current.next != null) {
        if (current.next.val == current.val) {
            current.next = current.next.next;
        } else {
            current = current.next;
        }
    }
    return head;
}

你可能感兴趣的:(LeetCode笔记)