首页 > 代码库 > leetcode_82_Remove Duplicates from Sorted List II
leetcode_82_Remove Duplicates from Sorted List II
描述:
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given 1->2->3->3->4->4->5
, return 1->2->5
.
Given 1->1->1->2->3
, return 2->3
.
思路:
大致思路就是,遍历链表找出重复元素的子列并删除重复元素子列,当然,第一个元素开始有重复元素的话比较特种,需要特殊考虑。删除子列的过程稍微有点绕,题目倒是不难理解。
代码:
public ListNode deleteDuplicates(ListNode head) { if(head==null) return head; ListNode p=head,q,t=head; boolean flag=false; if(p.next!=null&&p.val==p.next.val) { flag=true; t=head; } while (p.next!=null) { q=p; if(q.val==p.next.val) { while(p.next!=null&&q.val==p.next.val) p=p.next; t.next=p.next; if(t.next!=null) p=t.next; else break; } else { t=p; p=p.next; } } if(flag&&head!=null) head=head.next; return head; }
结果:
leetcode_82_Remove Duplicates from Sorted List II
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。