zoukankan      html  css  js  c++  java
  • 合并两个排序链表

    【问题】输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

    【思路】这个思路应该都可以想到归并排序的方法,然后进行组合形成最终的链表,需要注意的是,由于pHead1和pHead2的第一个链表节点谁大谁小不确定,因此头结点无法确定,因此我们需要新建一个哨兵节点pHead,用来创建一个链表的首节点,最终返回pHead.next为真正的头结点!

     1/*
     2struct ListNode {
     3    int val;
     4    struct ListNode *next;
     5    ListNode(int x) :
     6            val(x), next(NULL) {
     7    }
     8};*/
     9class Solution {
    10public:
    11    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
    12    {
    13        ListNode* pHead = new ListNode(-1); 
    14        ListNode* cur = pHead;
    15
    16        while(pHead1 != nullptr && pHead2 != nullptr){
    17            if(pHead1->val < pHead2->val){
    18                cur->next = pHead1;    // 新链表头结点
    19                pHead1 = pHead1->next;
    20            }else{
    21                cur->next = pHead2;
    22                pHead2 = pHead2->next;
    23            }
    24            cur = cur->next;
    25        }
    26        if(pHead1 != nullptr){
    27            cur->next = pHead1;
    28        }
    29        if(pHead2 != nullptr){
    30            cur->next = pHead2;
    31        }
    32        return pHead->next;
    33    }
    34};
  • 相关阅读:
    搭建zabbix监控
    liunx 下ctrl+D问题解决方案
    linux配置双线策略
    Discuz! X2.5读写分离
    慢谈MYSQL常用SQL语句
    CentOS 6.5系统安装配置LAMP(Apache+PHP5+MySQL)服务器环境
    自动抓包shell脚本
    zabbix实施部署原理架构
    ftp搭建教程
    DNS搭建教程
  • 原文地址:https://www.cnblogs.com/zhudingtop/p/11322242.html
Copyright © 2011-2022 走看看