合并排序链表

1.迭代实现

class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
    {
      auto res=pHead1;
      ListNode* pre=0;
      auto h1=pHead1,h2=pHead2;
      for(;h1&&h2;)
      {
        if(h1->val>=h2->val)
        {
          if(pre==0)
          { auto temp=h2->next;
            h2->next=h1;
            pre=h2;
            res=h2;
            h2=temp;
          }
          else
          {
            auto temp=h2->next;
            pre->next=h2;
            h2->next=h1;
            pre=h2;
            h2=temp;
          }

        }
        else
        {
          pre=h1;
          h1=h1->next;
        }
      }

      if(h1==0&&h2!=0)
      {
        pre->next=h2;
      }

      return res;


    }
};

2.递归实现

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

    }
};
全部评论

相关推荐

我朋友的华子2012,HR已经开始问意向地区了,好急
不讲武德的黑眼圈很能干:急得不行 也不说评级 不知道报的多少啊😡
点赞 评论 收藏
分享
点赞 评论 收藏
分享
10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
牛客146600443号:92的能看上这3k,5k在搞笑呢
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务