您的位置:首页 > 其它

[Leetcode]Remove Duplicates from Sorted List

2014-11-03 03:44 232 查看
Given a sorted linked list, delete all duplicates such that each element appear only once.

For example,

Given
1->1->2
, return
1->2
.

Given
1->1->2->3->3
, return
1->2->3
.

思路,两个指针,pre和cur。pre指向当前指针的前一个指针,用dump头节点来解决corner case问题。当有重复的时候cur一直往前知道没有重复的地方,然后pre指向没有重复的新值,更新pre和cur。

public ListNode deleteDuplicates(ListNode head) {
if (head == null) {
return head;
}

ListNode dump = new ListNode(0);
dump.next = head;
ListNode pre = dump;
ListNode cur = pre.next;
while (cur != null && cur.next != null) {
if (cur.val == cur.next.val) {
cur = cur.next;
} else {
pre.next.next = cur.next;
pre = cur;
cur = cur.next;
}
}
pre.next.next = cur.next;
return dump.next;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: