/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head == null) return null;
ListNode p = head;
ListNode currentNode = head.next;
ListNode preNode = null;
while(p!=null){
preNode = p;
currentNode = p.next;
while(currentNode!=null){
if(currentNode.val!=p.val){
currentNode = currentNode.next;
preNode = preNode.next;
}else{
preNode.next = currentNode.next;
currentNode = currentNode.next;
}
}
p = p.next;
}
return head;
}
}
注意到是已经拍过序的链表了所有第二种方案更好
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head == null) return null;
ListNode currentNode = head;
while(currentNode != null && currentNode.next!=null){
if(currentNode.val == currentNode.next.val){
currentNode.next = currentNode.next.next;
}else{
currentNode = currentNode.next;
}
}
return head;
}
}