[LeetCode-Algorithms-147] "Insertion Sort List" (2017.12.21-WEEK16)

来源:互联网 发布:怎么快速提升淘宝星级 编辑:程序博客网 时间:2024/03/28 19:54

题目链接:Insertion Sort List


  • 题目描述:

Sort a linked list using insertion sort.


(1)思路:将链表分为两部分,前半部分为已经排序好的,后半部分是未排序的,用指针指向未排序的头结点,遍历已经排序的部分,找到第一个大于该值的节点,然后将其插入到该节点之前一个位置即可;未排序部分的头结点向后移一个节点即可,直至遍历完整个链表。

(2)代码:

class Solution {public:    ListNode* insertionSortList(ListNode* head) {        ListNode *newhead = new ListNode(-1);        while(head != NULL){            ListNode *temp = head->next;            ListNode *cur = newhead;            while(cur->next != NULL &&cur->next->val < head->val){                cur = cur->next;            }            head->next = cur->next;            cur->next = head;            head = temp;        }        return newhead->next;    }};

(3)提交结果:

这里写图片描述

原创粉丝点击