只爱洗碗 2021-11-09 21:23 采纳率: 89.5%
浏览 5
已结题

下面图片中的这个内容要怎么做,该如何去解决它呢

下面图片中的这个内容要怎么做,我不会做,我该如何去解决它呢?

img

  • 写回答

1条回答 默认 最新

  • 从善若水 5G/6G通信领域优质创作者 2021-11-09 21:32
    关注
    
    /**
     * struct ListNode {
     *    int val;
     *    struct ListNode *next;
     * };
     */
    
    class Solution {
    public:
        ListNode* get_middle_position(ListNode* head,ListNode* tail)
        {
            ListNode* slow,*fast;
            slow = head;
            fast = head;
            while(fast != tail && fast->next != tail)
            {
                slow = slow->next;
                fast = fast->next->next;
            }
            return slow;
        }
        ListNode* merge(ListNode* left,ListNode* right)
        {
            ListNode *head, *cur;
            if (left->val < right->val)
            {
                head = left;
                left = left->next;
            }
            else
            {
                head = right;
                right = right->next;
            }
            cur = head;
            while (left && right)
            {
                if (left->val < right->val)
                {
                    cur->next = left;
                    left = left->next;
                    cur = cur->next;
                }
                else
                {
                    cur->next = right;
                    right = right->next;
                    cur = cur->next;
                }
            }
            if (left)
            {
                cur->next = left;
            }
            if (right)
            {
                cur->next = right;
            }
            return head;
        }
        ListNode* MergeSort(ListNode* begin, ListNode* mid, ListNode* end)
        {
            if (begin->next == end)
            {
                begin->next = nullptr;
                return begin;
            }
            return merge(MergeSort(begin, get_middle_position(begin, mid), mid), MergeSort(mid, get_middle_position(mid, end), end));
        }
        /**
         * 
         * @param head ListNode类 
         * @return ListNode类
         */
        ListNode* sortList(ListNode* head) {
            // write code here
            if(head == NULL)
                return NULL;
            return MergeSort(head,get_middle_position(head, NULL),NULL);
        }
    };
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月17日
  • 已采纳回答 11月9日
  • 创建了问题 11月9日

悬赏问题

  • ¥15 请问Ubuntu要怎么安装chrome呀?
  • ¥15 视频编码 十六进制问题
  • ¥15 Xsheii7我安装这个文件的时候跳出来另一个文件已锁定文件的无一部分进程无法访问。这个该怎么解决
  • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
  • ¥15 FileNotFoundError 解决方案
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥30 vs2010开发 WFP(windows filtering platform)
  • ¥15 服务端控制goose报文控制块的发布问题
  • ¥15 学习指导与未来导向啊