Java链表排序
时间: 2023-07-06 20:24:59 浏览: 94
Java链表排序可以通过实现Comparator接口或Comparable接口来实现。以下是两种方法的示例代码:
1. 通过实现Comparator接口实现链表排序
假设我们有一个链表,其中每个节点包含一个整数值:
```
class Node {
int val;
Node next;
Node(int val) {
this.val = val;
next = null;
}
}
```
现在,我们要对这个链表进行排序。我们可以创建一个Comparator类来实现排序:
```
class NodeComparator implements Comparator<Node> {
public int compare(Node n1, Node n2) {
return n1.val - n2.val;
}
}
```
然后,我们可以使用Collections.sort方法来对链表进行排序:
```
List<Node> list = new ArrayList<>();
//添加节点到链表中
...
Collections.sort(list, new NodeComparator());
```
2. 通过实现Comparable接口实现链表排序
我们也可以在节点类中实现Comparable接口来实现排序。我们只需要将每个节点类实现Comparable接口,并覆盖compareTo方法:
```
class Node implements Comparable<Node> {
int val;
Node next;
Node(int val) {
this.val = val;
next = null;
}
public int compareTo(Node n) {
return this.val - n.val;
}
}
```
然后,我们可以使用Collections.sort方法来对链表进行排序:
```
List<Node> list = new ArrayList<>();
//添加节点到链表中
...
Collections.sort(list);
```
阅读全文