zoukankan      html  css  js  c++  java
  • leetcode — remove-duplicates-from-sorted-list

    /**
     * Source : https://oj.leetcode.com/problems/remove-duplicates-from-sorted-list/
     *
     *
     * Given a sorted linked list, delete all duplicates such that each element appear only once.
     *
     * For example,
     * Given 1->1->2, return 1->2.
     * Given 1->1->2->3->3, return 1->2->3.
     */
    public class RemoveDuplicates {
    
        /**
         * 将链表中重复的元素移除,重复的元素只保留一个
         *
         * @param head
         * @return
         */
        public Node remove (Node head) {
            Node p = head;
            while (p != null && p.next != null) {
                if (p.value == p.next.value) {
                    p.next = p.next.next;
                    continue;
                }
                p = p.next;
            }
            return head;
        }
    
    
    
        private static class Node  implements Comparable<Node>{
            int value;
            Node next;
    
            @Override
            public String toString() {
                return "Node{" +
                        "value=" + value +
                        ", next=" + (next == null ? "" : next.value) +
                        '}';
            }
    
            @Override
            public int compareTo(Node o) {
                return this.value - o.value;
            }
        }
    
        private static void print (Node node) {
            while (node != null) {
                System.out.println(node);
                node = node.next;
            }
            System.out.println();
        }
    
        public Node createList (int[] arr) {
            if (arr.length == 0) {
                return null;
            }
            Node head = new Node();
            head.value = arr[0];
            Node pointer = head;
            for (int i = 1; i < arr.length; i++) {
                Node node = new Node();
                node.value = arr[i];
                pointer.next = node;
                pointer = pointer.next;
            }
            return head;
        }
    
    
        public static void main(String[] args) {
            RemoveDuplicates removeDuplicates = new RemoveDuplicates();
    
            int[] arr = new int[]{1,1,2};
            int[] arr1 = new int[]{1,1,2,3,3};
            print(removeDuplicates.remove(removeDuplicates.createList(arr)));
            print(removeDuplicates.remove(removeDuplicates.createList(arr1)));
    
        }
    }
    
  • 相关阅读:
    【UVa 1592】Database
    【UVa 400】Unix ls
    【UVa 136】Ugly Numbers
    【UVa 540】Team Queue
    【Uva 12096】The SetStack Computer
    【POJ 1050】To the Max
    【UVa 156】Ananagrams
    【UVa 10815】Andy's First Dictionary
    [HNOI/AHOI2018]转盘
    CF46F Hercule Poirot Problem
  • 原文地址:https://www.cnblogs.com/sunshine-2015/p/7741165.html
Copyright © 2011-2022 走看看