如何在不使用任何库的情况下按值对节点列表进行排序。
示例: *输入:3-> 1-> 5-> 4-> 2 *输出:1-> 2-> 3-> 4-> 5
ListNode.java
import java.util.List;
public class ListNode {
public int val;
public ListNode next;
public ListNode(int x) {
val = x;
}
public ListNode(int val, ListNode next) {
this.val = val;
this.next = next;
}
}
SortLinkList.java
public class SortLinkList {
public static ListNode sortLinkList(ListNode list) {
//TODO:
return list;
}
}```
答案 0 :(得分:1)
如果要就地排序,则可以实施气泡排序:
伪代码:
bool notDone = true
while(notDone)
{
notDone = false;
cur = head;
while(cur.nxt != null)
{
prev = cur;
cur = cur.nxt;
if(cur.val > cur.nxt.val)
{
prev.nxt = cur.nxt;
temp = cur.nxt.nxt;
cur.nxt.nxt = cur;
cur.nxt = temp;
notDone = true;
}
}
}
答案 1 :(得分:0)
1。制作一个仅存储每个节点的类的数组,对于每个节点,next指向null。数组的长度是列表中没有节点的值。
2。排列数组 3.链接节点并返回头
PS:为什么在涉及排序操作时使用链表,而不是单独使用数组?