【链表】有序链表中移除重复项
1 public class Main { 2 3 public Node removeDup(Node node){ 4 5 if (node == null || node.next == null || node.next.next == null){ 6 return node; 7 } 8 9 Node pre = node.next; 10 Node cur = node.next.next; 11 12 while (cur != null){ 13 if (cur.data == pre.data){ 14 pre.next = cur.next; 15 }else { 16 pre = cur; 17 } 18 cur = cur.next; 19 } 20 21 return node; 22 } 23 24 25 public Node createListNodes() { 26 Node node7 = new Node(7, null); 27 Node node6 = new Node(5, node7); 28 Node node5 = new Node(5, node6); 29 Node node4 = new Node(5, node5); 30 Node node3 = new Node(3, node4); 31 Node node2 = new Node(3, node3); 32 Node node1 = new Node(1, node2); 33 Node head = new Node(0, node1); // head pointer 34 35 return head; 36 } 37 38 public static void main(String[] args) { 39 Main main = new Main(); 40 Node node = main.removeDup(main.createListNodes()); 41 42 if (node != null) { 43 node = node.next; 44 while (node != null) { 45 System.out.println(node.data); 46 node = node.next; 47 } 48 } 49 } 50 }