遍历法:
每次遇到下一个节点与当前节点值相同则执行cur.next=cur.next.next;直至所有重复节点被移除,再执行cur=cur.next;
class Solution {
public ListNode deleteDuplicates(ListNode head) {
ListNode cur = head;
while(cur!=null && cur.next!=null) {
if(cur.val == cur.next.val) {
cur.next=cur.next.next;
}else{
//直到不等于的时候才可以向下走 不可以没有这个else!!!否则[1,1,1]输出[1,1]
cur=cur.next;
}
}
return head;
}
}
递归法:
public static LNode deleteDuplicatedNode1(LNode head) {
if(head!=null)System.out.println(head.val);
if(head == null || head.next==null) {
return head;
}
head.next = deleteDuplicatedNode(head.next);
if(head.val == head.next.val) {
return head.next;
} else {
return head;
}
}