C++ 链表的归并排序

来源:互联网 发布:schema.org 知乎 编辑:程序博客网 时间:2024/06/03 18:47
void disp_nodeList(ListNode *p) {    while (p!=NULL) {        disp(p->val);        p = p->next;    }}class Solution {public:    ListNode* sortList(ListNode* head) {        if (head==NULL || head->next==NULL) {            return head;        }        // step 1: divide into 2 parts        ListNode *slow = head;        ListNode *fast = head;        ListNode *pre = head;        while(fast!=NULL && fast->next!=NULL) {            pre = slow;            slow = slow->next;            fast = fast->next->next;        }        // step 2: cut list at middle        pre->next = NULL;        // step 3: merge 2 sublist;        return merge(sortList(head),sortList(slow));    }    ListNode *merge(ListNode *l1, ListNode *l2){        ListNode *p = NULL;        ListNode *head = NULL;        ListNode node(-1);        p = &node;        head = p;        while (l1!=NULL && l2!=NULL) {            if(l1->val < l2->val) {                p->next = l1;                l1 = l1->next;                p = p->next;            } else {                p->next = l2;                l2 = l2->next;                p = p->next;            }        }        if (l1!=NULL) {            p->next = l1;        } else{            p->next = l2;        }        return head->next;    }};int main() {    Solution solution;    ListNode l0(0);    ListNode l1(3);    ListNode l2(2);    ListNode l3(5);    ListNode l4(4);    ListNode l5(1);    l0.next = &l1;    l1.next = &l2;    l2.next = &l3;    l3.next = &l4;    l4.next = &l5;    ListNode *head = solution.sortList(&l0);    disp_nodeList(head);    return 0;}
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 云天河主播真人照片 云天海温泉酒店价目表 新丰云天海温泉度假村电话 广东新丰云天海温泉度假村 韶关新丰云天海大酒店 新丰云天海温泉酒店 新丰云天海温泉酒店价格 云天海温泉 新丰云天海温泉度假村在哪里 云天海 新丰云天海 云天下 云天空作品 云天空 云过天空你过心 云过天空 云天空改名了蝴蝶蓝 幻魔录 云天空 近战法师 云天空 x龙时代 云天空 离不开天空的云 云天空 灵剑尊 天空的云图片 x一龙时代 云天空 灵剑尊 云天空 不死冥王 云天空 邪神传说 云天空 双魂召唤师 云天空 云天空 新书 网盘天空 网游之梦幻现实 云天空 网游之幸运魔剑士 云天空 云天青 云平萧夫人 云夫人沈薇音 云蒙崮 云蒙崮村 云雷纹 云气纹 乡村野艳陆云全文 劣云头 肉全by旧弦