题解 | #单链表的排序#

单链表的排序

https://www.nowcoder.com/practice/f23604257af94d939848729b1a5cda08

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param head ListNode类 the head node
 * @return ListNode类
 */
 int compare(const void* a , const void* b){
    int* pa = (int*)a;
    int* pb = (int*)b;
    return *pa - *pb;
 }
struct ListNode* sortInList(struct ListNode* head ) {
    // write code here
   if(head == NULL || head->next == NULL) return head;
   int length = 0;
   struct ListNode* H = head;
   while(H){
    length++;
    H = H->next;
   }
    int* num = (int*)malloc(sizeof(int)*length);
    int i = 0;
    H = head;
    while(H){
        num[i++] = H->val;
        H = H->next;
    }
   qsort(num , length , sizeof(int) , compare);
   H = head;
   i = 0;
   while(H){
    H->val = num[i++];
    H = H->next;
   }
   return head;
}

全部评论

相关推荐

刷牛客的我很豁达:你是不是对算法有什么误解,你没手握两篇顶刊顶会,还想搞算法岗,有顶刊顶会在算法岗算才入门
点赞 评论 收藏
分享
牛客小菜鸡66:boss里面,招人的叫老板,找工作的叫牛人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务