读题
题目难度:easy
问题描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
根据题目提示,要使用链表完成,目的就是去除链表中重复元素
83.删除排序数组中的重复项
思路
用一个ArrayList存储重复数据,然后用temp和jump存储断开的点和每次移动的点。
代码
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head == null) return null;
ListNode temp = head;
ListNode jump = temp.next;
List<Integer> list = new ArrayList<Integer>();
list.add(head.val);
while(jump!=null){
int nextVal = jump.val;
if(list.contains(nextVal)){
jump = jump.next;
}else{
list.add(nextVal);
temp = jump;
jump = temp.next;
}
temp.next = jump;
}
return head;
}
}
感想
记录每一次过程,以后继续努力。