java代码实现 无序链表 排序
时间: 2023-06-04 14:06:49 浏览: 81
可以使用冒泡排序、插入排序等算法来实现无序链表排序。
以冒泡排序为例,算法步骤如下:
1. 从链表头开始,设置游标指向链表开头节点。
2. 遍历链表,如果当前节点值大于后续节点值,则交换两节点值。
3. 当遍历到链表尾部时,回到链表头,重复步骤2,直到没有节点需要交换。
4. 遍历结束后,链表得以排序。
Java 代码示例:
```java
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
// 冒泡排序
public ListNode sortList(ListNode head) {
if (head == null || head.next == null) return head;
boolean flag = true;
while (flag) {
flag = false;
ListNode node = head;
while (node.next != null) {
if (node.val > node.next.val) {
int tempVal = node.val;
node.val = node.next.val;
node.next.val = tempVal;
flag = true;
}
node = node.next;
}
}
return head;
}
```