[安全プランを証明] - 2つのソートされたリストをマージ

タイトル説明

ルールの減少 - 二人は単調もちろん、その後私たちは、合成リストを満たすために必要な、二つのリストを合成した後、入力リストおよび出力リストを増加させることができます。

非再帰コード:

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
    {
        if(pHead1 ==NULL)
            return pHead2;
        if(pHead2 == NULL)
            return pHead1;
        ListNode* pre_head = new ListNode(0);
        ListNode* pTemp = pre_head;
        while(pHead1 !=NULL && pHead2 != NULL){
            if(pHead1->val < pHead2->val){
                pTemp->next = pHead1;
                pHead1 = pHead1->next;
            }
            else{
                pTemp->next = pHead2;
                pHead2 = pHead2->next;
            }
            pTemp = pTemp->next;
        }
        //将比较后某一个原始链表剩余部分直接插到新的链表后方
        if(pHead1)
            pTemp->next = pHead1;
        if(pHead2)
            pTemp->next = pHead2;
        ListNode* ans = pre_head->next;
        delete pre_head;
        return ans;
    }
};

おすすめ

転載: blog.csdn.net/yuemingyang7010/article/details/92367661