import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
class Node {
int val;
Node next;
public Node(int val) {
this.val = val;
}
}
class MyComparator{
public static Comparator getComparator() {
Comparator comparator = new Comparator() {
public int compare(Object o1, Object o2) {
return compare((Node)o1, (Node)o2);
}
public int compare(Node o1, Node o2) {
return o1.val - o2.val;
}
};
return comparator;
}
}
public class Test3 {
public static Node SortList(Node node) {
ArrayList<Node> list = new ArrayList<>();
Node temp = node;
while (temp != null) {
list.add(temp);
temp = temp.next;
}
Collections.sort(list, MyComparator.getComparator());
Node temp2 = list.get(0);
node = temp2;
for (int i = 1; i < list.size(); i++) {
temp2.next = list.get(i);
temp2 = temp2.next;
}
return node;
}
public static void main(String[] args) {
Node p1 = new Node(3);
p1.next = new Node(5);
p1.next.next = new Node(4);
p1.next.next.next = new Node(6);
p1.next.next.next.next = new Node(7);
Node temp = p1;
while (temp != null) {
System.out.print(temp.val);
temp = temp.next;
}
p1 = SortList(p1);
System.out.println();
Node temp2 = p1;
while (temp2 != null) {
System.out.print(temp2.val);
temp2 = temp2.next;
}
}
}
java实现无序链表排序
最新推荐文章于 2022-11-12 22:56:44 发布