【剑指offer】合并两个排序的链表(链表)

版权声明:本文为原创博客,未经允许,请勿转载。 https://blog.csdn.net/u013095333/article/details/88599310

题目描述

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

链接

https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337?tpId=13&tqId=11169&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

代码

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
    {
        ListNode* pHead = NULL;
        ListNode* pTemp = NULL;
        while(pHead1 || pHead2){
            if(pHead1 == NULL && pHead2 != NULL){
                if(pHead == NULL){
                    pHead = pHead2;
                    pTemp = pHead;
                    pHead2 = pHead2->next;
                }
                else{
                    pTemp->next = pHead2;
                    pTemp = pTemp->next;
                    pHead2 = pHead2->next;
                }
            }
            else if(pHead1 != NULL && pHead2 == NULL){
                if(pHead == NULL){
                    pHead = pHead1;
                    pTemp = pHead;
                    pHead1 = pHead1->next;
                }
                else{
                    pTemp->next = pHead1;
                    pTemp = pTemp->next;
                    pHead1 = pHead1->next;
                }
            }
            else{
                if(pHead1->val < pHead2->val){
                    if(pHead == NULL){
                        pHead = pHead1;
                        pTemp = pHead;
                        pHead1 = pHead1->next;
                    }
                    else{
                        pTemp->next = pHead1;
                        pTemp = pTemp->next;
                        pHead1 = pHead1->next;
                    }
                }
                else{
                    if(pHead == NULL){
                        pHead = pHead2;
                        pTemp = pHead;
                        pHead2 = pHead2->next;
                    }
                    else{
                        pTemp->next = pHead2;
                        pTemp = pTemp->next;
                        pHead2 = pHead2->next;
                    }
                }
            }
        }
        return pHead;
    }
};

猜你喜欢

转载自blog.csdn.net/u013095333/article/details/88599310