zoukankan      html  css  js  c++  java
  • 剑指Offer-合并两个排序的链表

    题目描述:

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

    思路:

    1.判断两个链表是否为空,若其中一个链表为空,则直接返回另一个链表。

    2.新建一个节点作为合并后的链表头部,最后返回时需要返回该头部的下一个节点。

    3.当两个链表均不为空时,按照数字大小依次插入到新链表中。

    4.当其中一个链表为空时,将另一个链表的后续元素全部插入到新链表中。

    代码:

     1 /*
     2 struct ListNode {
     3     int val;
     4     struct ListNode *next;
     5     ListNode(int x) :
     6             val(x), next(NULL) {
     7     }
     8 };*/
     9 class Solution {
    10 public:
    11     ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
    12     {
    13         if(pHead1 == NULL)
    14             return pHead2;
    15         
    16         if(pHead2 == NULL)
    17             return pHead1;
    18         
    19         ListNode *newhead = new ListNode(0);
    20         ListNode *current = newhead;
    21         while(pHead1 != NULL && pHead2 != NULL){
    22             if(pHead1 -> val <= pHead2 ->val){
    23                 current->next = pHead1;
    24                 current = current->next;
    25                 pHead1 = pHead1->next;
    26             }else{
    27                 current->next = pHead2;
    28                 current = current->next;
    29                 pHead2 = pHead2->next;
    30             }
    31         }
    32         if(pHead1 != NULL){
    33             current -> next = pHead1;
    34         }else if(pHead2 != NULL){
    35             current ->next = pHead2;
    36         }
    37         return newhead->next;
    38     }
    39 };
  • 相关阅读:
    Spring基础学习(四)—AOP
    Spring基础学习(三)—详解Bean(下)
    Spring基础学习(二)—详解Bean(上)
    Spring基础学习(一)—初识Spring
    Hibernate基础学习(九)—9999
    Hibernate基础学习(八)—8888888
    Hibernate基础学习(七)—检索方式
    Kali下安装Oracle JDK
    CentOS下安装vsftpd及问题解决
    CentOS下安装vsftpd及问题解决
  • 原文地址:https://www.cnblogs.com/sindy/p/7381711.html
Copyright © 2011-2022 走看看