【LeetCode】-Remove Duplicates from Sorted List II

来源:互联网 发布:韶关市始兴县网络问政 编辑:程序博客网 时间:2024/06/01 07:14

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.

/** * 解题思路: * 保留与前后节点val不同的节点 *  * 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(head==null)return null;if(head.next==null)return head;ListNode newHead = new ListNode(0);ListNode tail = newHead;if( head.next!=null && head.val!=head.next.val ){tail.next = head;tail = tail.next;}while( head.next!=null && head.next.next!=null ){if( head.val!=head.next.val && head.next.val!=head.next.next.val ){tail.next = head.next;tail = tail.next;}head = head.next;}if( head.val!=head.next.val ){tail.next = head.next;tail = tail.next;}tail.next = null;return newHead.next;        }}


0 0