本文共 1277 字,大约阅读时间需要 4 分钟。
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
.
/** * 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) { if (null == head || null == head.next) return head; ListNode new_head = new ListNode(0); new_head.next = head; ListNode tmp = new_head; while (true) { if (tmp.next != null && tmp.next.next != null && tmp.next.next.next != null) { if (tmp.next.val == tmp.next.next.val && tmp.next.val == tmp.next.next.next.val) { tmp.next = tmp.next.next; // 跳过后一个 } else if (tmp.next.val == tmp.next.next.val) { tmp.next = tmp.next.next.next; // 跳过后两个 } else { tmp = tmp.next; // 跳过后一个 } }else if(tmp.next != null && tmp.next.next !=null){ if(tmp.next.val ==tmp.next.next.val) tmp.next =null; else tmp = tmp.next.next; }else{ break; } } head = new_head.next; new_head = null; return head; }}
转载地址:http://cvuni.baihongyu.com/