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

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
public ListNode deleteDuplicates(ListNode head) {                                        //自己的思路就是哪一个不重合 就申请一个新的结点并加入到ls2中 构成一个新的链表
    ListNode ls1 = new ListNode(Integer.MAX_VALUE);
        ListNode ls2 = new ListNode(Integer.MAX_VALUE);                    //这里的取值很危险 一不小心就报错 这里也是赌运气
        ListNode ls3 = ls2;
        ls1.next = head;
        while(ls1!=null) {
            while(ls1.next!=null&&ls1.val==ls1.next.val)
                ls1 = ls1.next;
            ls1 = ls1.next;
            if(ls1 == null)
                break;
            if(ls1.next==null||ls1.val != ls1.next.val){
                ls3.next = new ListNode(ls1.val);
                ls3 = ls3.next;    
            }
        }
        return ls2.next;

    }
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务