function sortInList( head ) {
if(!head || !head.next){
return head;
}
head = quickSort(head)
return head;
}
function quickSort(head) {
if(!head || !head.next){
return head;
}
let left = null;
let leftP = left
let right = null;
let rightP = right;
let middle = new ListNode(head.val);
let p = head.next;
while(p){
let next = p.next;
if(p.val<middle.val){
if(left){
leftP.next = p;
p.next = null;
leftP = p;
}else{
left = p;
p.next = null;
leftP = left;
}
}else{
if(right){
rightP.next = p;
p.next = null;
rightP = p;
}else{
right = p;
p.next = null;
rightP = right;
}
}
p = next;
}
left = quickSort(left);
right = quickSort(right);
middle.next = right;
right = middle;
let p2 = left;
while(p2 && p2.next){
p2 = p2.next;
}
if(p2){
p2.next = right;
}else{
left = right;
}
head = left;
return head;
}
function selectSort( head ) {
if(!head || !head.next){
return head;
}
let Index = head;
while(Index){
let minIndex = Index;
let minP = Index;
while(minP){
if(minP.val <= minIndex.val){
minIndex = minP;
}
minP = minP.next;
}
if(Index.val > minIndex.val){
let temp = minIndex.val;
minIndex.val = Index.val;
Index.val = temp;
}
Index = Index.next;
}
return head;
}
module.exports = {
sortInList : sortInList
};