您当前的位置: 首页 >  链表

对方正在debug

暂无认证

  • 3浏览

    0关注

    399博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

排序链表(归并/非递归实现)

对方正在debug 发布时间:2020-03-03 21:47:17 ,浏览量:3

题目:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    int getlength(ListNode *head) {
        int n = 0;
        while(head) head = head->next,++n;
        return n;
    }
    ListNode* split(ListNode *head,int n) {
        ListNode *tmp;
        while(--n && head) head = head->next;
        if(head == nullptr) return  head;
        tmp = head->next;
        head->next = nullptr;
        return tmp;
    }
    void merge(ListNode *&p,ListNode *left,ListNode *right) {
        while(left && right) {
            if(left->val val) {
                p->next = left;
                p = p->next;
                left = left->next;
            }else {
                p->next = right;
                p = p->next;
                right = right->next;
            }
        }
        while(left) {
            p->next = left;
            p = p->next;
            left = left->next;
        }
        while(right) {
            p->next = right;
            p = p->next;
            right = right->next;
        }
    }
    ListNode* sortList(ListNode* head) {
        int n = getlength(head);
        ListNode *left,*right;
        ListNode *newhead = new ListNode(-1);
        newhead->next = head;
        ListNode *pre = newhead,*cur,*p;
        for(int sz = 1;sz             
关注
打赏
1664895754
查看更多评论
0.0386s