BM12 单链表的排序

 

 

 

 

/*
 * function ListNode(x){
 *   this.val = x;
 *   this.next = null;
 * }
 */

/**
 * 
 * @param head ListNode类 the head node
 * @return ListNode类
 */
function sortInList( head ) {
    // write code here
    //定义一个数组用来存放排好序的链表元素
    let Arr = []
    let dummy = new ListNode(-1)
    //遍历链表
    let p1 = head
    let k = 0
    while(p1){
        Arr.push(p1.val)
        p1 = p1.next
        //链表长度不知有用否
        k++ 
    }
    
    //数组排序
    Arr.sort( (a,b)=>{
        return a-b
    })
    
    //将数组的值放到新的链表
    dummy.next = head
    for(let i=0; i<k; i++) {
        head.val = Arr[i]
        head = head.next
    }
    
    return dummy.next
}
module.exports = {
    sortInList : sortInList
};

  

posted @ 2022-03-27 21:54  方头小小狮  阅读(39)  评论(0)    收藏  举报