链表的插入排序

链表的插入排序

http://www.nowcoder.com/questionTerminal/152bc6c5b14149e49bf5d8c46f53152b

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    public ListNode insertionSortList (ListNode head) {
        // write code here
        if(head == null || head.next == null) return head;
        ListNode node = new ListNode(head.val);
        ListNode headNext = insertionSortList(head.next);

        if(node.val <= headNext.val){
            node.next = headNext;
            return node;
        }

        ListNode cur = headNext;
        ListNode prev = new ListNode(-1);
        while(cur != null && cur.val < node.val){
            prev = cur;
            cur = cur.next;
        }
        if(cur == null){
            prev.next = node;
        }else{
            prev.next = node;
            node.next = cur;
        }
        return headNext;
    }
}
全部评论

相关推荐

05-16 11:16
已编辑
东华理工大学 Java
牛客737698141号:盲猜几十人小公司,庙小妖风大,咋不叫她去4️⃣呢😁
点赞 评论 收藏
分享
程序员牛肉:这一眼假啊,基本上都是骗人的,不然就涉及到职位贪腐了,就像之前华为的OD事件,看你运气好不好了
点赞 评论 收藏
分享
06-18 16:45
门头沟学院 Java
玩脱了,吊着两家结果两家都不要鼠鼠了,我真想给自己两巴掌。
凉风落木楚山秋:当作是你把这两家公司从地球开除了就行了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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