147. Insertion Sort List

来源:互联网 发布:mac 查看硬盘内存 编辑:程序博客网 时间:2024/06/07 21:52
/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* insertionSortList(ListNode* head) {        if (head == NULL)return NULL;ListNode*L = new ListNode(0);//设置一个头结点,便于插入排序;ListNode*p = NULL, *q = NULL,*s=NULL;/*L->next = head;*/while (head != NULL){s = L;//记住插入位置的前驱便于插入q = L->next;//每次插入从第一个结点开始p = head;//插入的结点head = head->next;//下一个插入的结点while (q != NULL&&p->val > q->val){s = q;q = q->next;}s->next = p;p->next = q;}return L->next;    }};

原创粉丝点击