题解 | #链表的插入排序#

链表的插入排序

https://www.nowcoder.com/practice/152bc6c5b14149e49bf5d8c46f53152b

public class Solution {
    public ListNode insertionSortList(ListNode head) {
        ListNode dummy = new ListNode(0);

        while(head != null){
            ListNode node = dummy;

            while(node.next != null && node.next.val < head.val){
                node = node.next;
            }

            ListNode tmp = head.next; //保存head的下一个节点
            head.next = node.next;  //拼接排序后半部分数组
            node.next = head;   //把前半部分排序数组和后半部分凭借
            head = tmp;  // 恢复head的下一个节点
        }

        return dummy.next;
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
10-05 10:13
已编辑
HHHHaos:让这些老登来现在秋招一下,简历都过不去
点赞 评论 收藏
分享
头像
11-09 12:17
清华大学 C++
out11Man:小丑罢了,不用理会
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务