您的位置:首页 > 其它

LeetCode Remove Duplicates from Sorted List

2014-11-09 18:50 169 查看
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
.
题意:删除链表中的重复元素
思路:用两个结点,一个表示当前非重复元素的最后一个元素,别外一个表示当前遍历的元素,如果当前元素与非重复元素的最后一个不相等,将当前元素加到非重复元素的最后,如果相等,就将当前非重复元素的最后一个的下一个指向当前的下一个

/**
* 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) {
ListNode p = head, next = null;

if (p != null) next = p.next;

while (next != null) {
if (next.val != p.val) {
p.next = next;
p = next;
} else {
p.next = next.next;
}

next = next.next;
}

return head;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: