这个问题来自Leetcode
给定已排序的链接列表,删除所有重复项,使每个元素只出现一次。 例如, 给定1-> 1-> 2,返回1-> 2。 给定1-> 1-> 2-> 3-> 3,返回1-> 2-> 3.
这是我的java代码,总是得到错误的答案。请告诉我原因。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head == null)return null;
ListNode h1 = head;
int size = 0;
int count = 0;
int count_num = 0;
while(h1 != null){
size++;
h1 = h1.next;
}
ListNode[] list = new ListNode[size];
list[0] = head;
count_num++;
head = head.next;
while(count < size - 1){
if(list[count_num - 1].val != head.val && head != null){
list[count_num] = head;
count_num++;
}
count++;
head = head.next;
}
return list[0];
}
}
答案 0 :(得分:0)
你的代码什么也没做。您将唯一节点放在一个数组中,但根本不更改链接列表,并返回您输入的相同列表。