The sword refers to Offer_Programming questions_16

Topic description

Input two monotonically increasing linked lists, and output the linked list after combining the two linked lists. Of course, we need the combined linked list to satisfy the monotonically non-decreasing rule.
/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
    {
        ListNode* h1 = new ListNode(0);
        ListNode* h2 = h1;
        while(pHead1 != NULL && pHead2 != NULL){
            if(pHead1->val < pHead2->val){
                h1->next = pHead1;
                pHead1=pHead1->next;
                h1 = h1->next;
            }else if(pHead1->val >= pHead2->val){
                h1->next = pHead2;
                pHead2=pHead2->next;
                h1 = h1->next;
            }
            h1->next = NULL;
        }
        if(pHead1){
            h1->next = pHead1;
        }else if(pHead2){
            h1->next = pHead2;
        }
        return h2->next;
    }
};

  

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324776397&siteId=291194637