**[链表]83. Remove Duplicates from

2018-06-13  本文已影响0人  Reflection_

83. Remove Duplicates from Sorted List

删除LinkedList中相同的node。
基础链表题,但是要对链表理解透彻!!

思路:
建一个同样大小的二维数组,存(0,0)->当前点的最小和。

JAVA 2ms Solution 的一种解法

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        if(head == null || head.next == null) return head;
        ListNode cur = head;
        while(cur!=null){
            ListNode nex = cur;
            while(nex.next != null && nex.val == nex.next.val){ //思考为什么不能是cur.next != null 
                nex = nex.next;
            }
            cur.next = nex.next;//Must have!
            cur = nex.next;
            
            
        }
        return head;
        
    }
}

Java 2ms 解法一

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        if(head == null) return head;
        
        for(ListNode pre = head, cur = head.next; cur != null; cur = pre.next){
            if(pre.val == cur.val){
                pre.next = cur.next;//Important step!
            }else{
                pre = cur;
            }
        }
        return head;
        
    }
}
上一篇下一篇

猜你喜欢

热点阅读