82. 删除排序链表中的重复元素 II

/**

给定一个已排序的链表的头 head ,删除原始链表中所有重复数字的节点,只留下不同的数字。返回 已排序的链表 。


输入:head = [1,2,3,3,4,4,5]

输出:[1,2,5]

**/

/**

 * Definition for singly-linked list.

 * public class ListNode {

 *     int val;

 *     ListNode next;

 *     ListNode() {}

 *     ListNode(int val) { this.val = val; }

 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }

 * }

 */

class Solution {

    public ListNode deleteDuplicates(ListNode head) {

        ListNode result = new ListNode();

        ListNode next = new ListNode();

        result.next = next;

        ListNode pre = null;

        while(head != null){

            if(isEquals(pre,head) || isEquals(head,head.next)){

                pre = head;


            }else{

                next.next = new ListNode(head.val,null);

                next = next.next;

            }

            head = head.next;

        }

        return result.next.next;

    }

    private boolean isEquals(ListNode a, ListNode b){

        return a != null && b != null && a.val == b.val;

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容