当前位置: 首页 > news >正文

开网站做什么/优化服务平台

开网站做什么,优化服务平台,免费前端模板,徐州最新消息今天在 O(n log n) 时间复杂度和常数级的空间复杂度下给链表排序。 您在真实的面试中是否遇到过这个题? Yes样例 给出 1->3->2->null,给它排序变成 1->2->3->null. 这道题目明显是需要我们用归并进行链表排序。 C Code 12345678910111213…

在 O(n log n) 时间复杂度和常数级的空间复杂度下给链表排序。

样例

给出 1->3->2->null,给它排序变成 1->2->3->null.

这道题目明显是需要我们用归并进行链表排序。

C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/**
 * Definition of ListNode
 * class ListNode {
 * public:
 *     int val;
 *     ListNode *next;
 *     ListNode(int val) {
 *         this->val = val;
 *         this->next = NULL;
 *     }
 * }
 */

class Solution
{
public:
    
/**
     * @param head: The first node of linked list.
     * @return: You should return the head of the sorted linked list,
                    using constant space complexity.
     */

    ListNode *sortList(ListNode *head)
    {
        
// write your code here
        if(head == NULL || head -> next == NULLreturn head;
        ListNode *mid = findMid(head);
        ListNode *temp = mid -> next;//将链表分成两段
        mid -> next = 
NULL;
        ListNode *left = sortList(head);
        ListNode *right = sortList(temp);
        
return merge(left, right);
    }
    ListNode *findMid(ListNode *head)//寻找链表中间结点
    {
        
if(head == NULL || head -> next == NULLreturn head;
        ListNode *fast = head;
        ListNode *slow = head;
        
while(fast -> next != NULL && fast -> next -> next != NULL)
        {
            fast = fast -> next -> next;
            slow = slow -> next;
        }
        
return slow;
    }
    ListNode *merge(ListNode *left, ListNode *right)//合并链表
    {
        
if(left == NULL && right == NULLreturn NULL;
        ListNode *node = 
new ListNode(0);
        ListNode *node1 = node;
        
while(left != NULL && right != NULL)
        {
            
if(left -> val < right -> val)
            {
                ListNode *temp = left;
                left = left -> next;
                node1 -> next = temp;
                node1 = node1 -> next;
            }
            
else
            {
                ListNode *temp = right;
                right = right -> next;
                node1 -> next = temp;
                node1 = node1 -> next;
            }
        }
        
if(left != NULL) node1 -> next = left;
        
else node1 -> next = right;
        
return node -> next;
    }
};


http://www.jmfq.cn/news/4757545.html

相关文章:

  • 网站建设多少钱杭州/seo赚钱培训课程
  • 政府网站是哪个建设的/搜索引擎优化是什么意思啊
  • 普陀区网站建设前端/线上教育培训机构十大排名
  • 宿松做网站/百度竞价推广开户价格
  • 手机微网站价/软文营销写作技巧
  • 哈尔滨微信网站建设/手把手教你优化网站
  • 做的网站怎么上传/百度官方电话人工服务电话
  • wordpress广告位插件/云优化
  • 做网站工作好么/seoyoon
  • 甘肃疫情最新资讯/优化教程网站推广排名
  • 波莱网站开发/临沂seo整站优化厂家
  • 深圳鲜花团购网站建设/杭州网站设计公司
  • 专业企业网站建设公司/网站建设与优化
  • b2b网站模板免费下载/上海网站优化
  • 做网站1200/今日十大头条新闻
  • 石家庄做网站的公司/百度官方人工客服电话
  • 自己怎样做淘客网站/如何给企业做网络推广
  • 广西疫情最新消息今天封城了/知名的搜索引擎优化
  • wordpress标签里面没文章/seo是什么职务
  • 北京彩页设计制作/郑州专业seo推荐
  • 手机wap网站开发与设计/做网站优化哪家公司好
  • 国外做网站被动收入/roseonly企业网站优化
  • 哪个网站是专门做招商的平台/百度推广获客
  • 自己做的网站别人查看/常见的网络推广方式有哪些
  • 网站建设技术服务的方式是什么/网络营销总监岗位职责
  • wordpress 安装插件 无法显示/绍兴seo网站管理
  • 哪个网站可以做头像/百度网站提交收录入口
  • 政府网站集约化建设栏目规划/关键词优化举例
  • 龙岗附近公司做网站建设多少钱/网站推广策划思路的内容
  • 泰州做兼职的网站/南京seo域名