Leetcode Sort List非递归
来源:互联网 发布:mac 退出编辑模式 编辑:程序博客网 时间:2024/06/01 10:51
Sort a linked list in O(n log n) time using constant space complexity.
利用MergeSort非递归方式完成该题
原题:点击打开链接
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *sortList(ListNode *head) { int interval = 1; while(1){ ListNode *node = head; bool UpdateHead = true; ListNode *preNode = NULL; while(1){ ListNode *first_link_head, *first_link_tail, *second_link_head, *second_link_tail; first_link_head=first_link_tail=second_link_head=second_link_tail=node; int cnt = interval; while(second_link_head && cnt--){ first_link_tail = second_link_head; second_link_tail = second_link_head = second_link_head->next; } if(second_link_head){ cnt = interval; while(second_link_tail->next && --cnt){ second_link_tail = second_link_tail->next; } ListNode *merge_link, *merge_link_head; merge_link = merge_link_head = NULL; node = second_link_tail->next; second_link_tail->next = NULL; first_link_tail->next = NULL; while( second_link_head || first_link_head ){ if(!second_link_head || first_link_head && second_link_head && first_link_head->val < second_link_head->val){ merge_link = !merge_link ? first_link_head : merge_link->next = first_link_head; first_link_head = first_link_head->next; }else{ merge_link = !merge_link ? second_link_head : merge_link->next = second_link_head; second_link_head = second_link_head->next; } if(merge_link_head == NULL){ merge_link_head = merge_link; } if(UpdateHead){ head = merge_link; UpdateHead = false; } } if(preNode != NULL){ preNode->next = merge_link_head; } preNode = merge_link; }else{ if(preNode != NULL){ preNode->next = node; } break; } } if(UpdateHead){ break; } interval *= 2; } return head; }};
0 0
- Leetcode Sort List非递归
- merge two sort list-leetcode 有序链表合并的二级指针简洁非递归解法
- list容器的特殊sort()算法:非递归--归并排序
- [leetcode][list][sort] Sort List
- merge sort 递归 && 非递归
- VS 2010 std::list.sort函数实现的非递归merge sort
- merge list 非递归
- Insertion Sort List | leetcode
- Leetcode: Insertion Sort List
- [LeetCode] Insertion Sort List
- Leetcode: Insertion Sort List
- Leetcode: Sort List
- Sort List | leetcode
- leetcode-Sort List
- leetcode-Insertion Sort List
- LeetCode题解:Sort List
- leetcode 134: Sort List
- [LeetCode]Sort List
- 沙灌言论大全
- cheap stitched jerseys
- Copy List with Random Pointer
- cheap wholesale sports jerseys
- cheap sport jerseys wholesale
- Leetcode Sort List非递归
- ubuntu下用apt-get安装lamp缺少mcrypt 解决方法
- 尽管法国戛纳符合法定合肥的规定发放给
- cheap personalized jerseys
- wholesale nike jerseys paypal
- 高科技购房计划幅度很大符合梵蒂冈
- 防火规范很多符合梵蒂冈电饭锅地方
- 风格积谷防饥购房计划规范化
- 所有子序列的最大值 Maximum of all subarrays of size k