class ListNode {
int val;
ListNode next;
ListNode(int x, ListNode next) {
val = x;
this.next = next;
}
}
public class Solution {
public ListNode deleteDuplicates(ListNode head) {
if (head == null || head.next == null)
return head;
ListNode q = head;
while (q.next != null) {
if (q.val == q.next.val) {
q.next = q.next.next;
} else {
q = q.next;
}
}
return head;
}
public ListNode deleteDuplicates2(ListNode head) {
if (head == null || head.next == null)
return head;
head.next = deleteDuplicates2(head.next);
return head.val == head.next.val ? head.next : head;
}
public ListNode deleteDuplicates3(ListNode head) {
if (head == null || head.next == null)
return head;
ListNode left = head;
ListNode right = left.next;
ListNode pre = left;
while (right != null) {
if (right.val == left.val) {
pre = right;
right = right.next;
continue;
}
if (pre != left) {
left.next = pre.next;
}
left = left.next;
right = left.next;
pre = left;
}
left.next = null;
return head;
}
public static void print(ListNode head) {
while (head != null) {
System.out.print(head.val + " ");
head = head.next;
}
System.out.println();
}
public static void main(String[] args) {
ListNode _4 = new ListNode(3, null);
ListNode _3 = new ListNode(3, _4);
ListNode _2 = new ListNode(2, _3);
ListNode _1 = new ListNode(1, _2);
ListNode head = new ListNode(1, _1);
ListNode result = new Solution().deleteDuplicates(head);
print(result);
}
}
排序单链表去重复元素
最新推荐文章于 2023-09-07 18:52:45 发布