Swordはオファーシリーズを指しますSwordはオファー25を指します:2つの順序付けられたリンクリストをマージします

タイトル説明:

2つの昇順リンクリストを新しい 昇順 リンクリストに結合して戻ります。新しいリンクリストは、指定された2つのリンクリストのすべてのノードを接続することによって構成されます。

例:

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

問題解決のアイデア:

  1. 2つのリンクリストは順番に並んでいるため、ループ内の2つのリンクリスト内のノードの値を直接決定します。どちらが小さく、どちらがリンクリストの最後まで1ビット後方に移動します。
  2. 終了と判断されていないリンクリストの残りの部分に従ってください。

コード:

class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        ListNode* pp = new ListNode(0);
        auto p = pp;
        while(l1 && l2)
        {
            if(l1->val > l2->val){
                p->next = l2;
                p = p->next;
                l2 = l2->next;
            }
            else{
                p->next = l1;
                p=p->next;
                l1 = l1->next;
            }
        }
        if(l1){ p->next = l1;}
        else{ p->next = l2;}
        pp = pp->next;
        return pp;
    }
};

 

おすすめ

転載: blog.csdn.net/qq_46423166/article/details/110790639