LeetCode0021合并两个有序链表C++解法

题目描述

LeetCode0021合并两个有序链表C++解法_第1张图片
本题难度程度为简单,因此我们直接上解法

C++解法

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        ListNode* p=l1;
        ListNode* q=l2;
        ListNode* result=new ListNode(0);
        ListNode* r=result;
        while(p&&q){
            if(q->val>p->val){
                r->next=p;
                r=r->next;
                p=p->next;
            }else{
                r->next=q;
                r=r->next;
                q=q->next;
            }
        }
        if(q)
            r->next=q;
        if(p)
            r->next=p;
        return result->next;
    }
};

LeetCode0021合并两个有序链表C++解法_第2张图片

你可能感兴趣的:(LeetCode算法刷题,leetcode)