程序员人生 网站导航

Insertion Sort List --leetcode

栏目:互联网时间:2014-12-22 08:51:18

思路:创建1辅助节点,作为生成链表的头结点(不含有效数据)。遍历原链表中每个节点,并将其插入到新链表的对应位置

/** * 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) { ListNode *dump = new ListNode(0); if(head == NULL || head->next == NULL) return head; ListNode *prev = dump; ListNode *cur = head; ListNode *tmp; while(cur) { prev = dump; while((prev->next != NULL)&&(prev->next->val < cur->val))//找到1点,在该点以后插入 prev= prev->next; tmp = cur->next; cur->next = prev->next; prev->next = cur; cur = tmp; } return dump->next; } };


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐