剑指offer16

剑指offer16:合并两个排序的链表

题目描述

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

解法一:基于递归的方法

class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
    {
        if (pHead1 == NULL)
            return pHead2;
        else if(pHead2 == NULL)
            return pHead1;
        if (pHead1->val <= pHead2->val)
        {
            pHead1->next = Merge(pHead1->next, pHead2);
            return pHead1;
        }
        else
        {
            pHead2->next = Merge(pHead2->next, pHead1);
            return pHead2;
        }

    }
};

main函数

#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;

struct ListNode {
    int val;
    struct ListNode*  next;
    ListNode(int x) :
        val(x), next(NULL) {
    }
};

int main()
{

    system("pause");
    return 0;
}

   转载规则


《剑指offer16》 赵小亮 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
剑指offer18 剑指offer18
剑指offer18:顺时针打印矩阵 题目描述题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如, 如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依
2020-05-13
下一篇 
剑指offer15 剑指offer15
剑指offer15:反转链表 题目描述题目描述 输入一个链表,反转链表后,输出新链表的表头。 解法一:基于头插法class Solution { public: ListNode* ReverseList(ListNode* pH
2020-05-13
  目录