Merge k Sorted Lists

2015-12-31  本文已影响0人  CarlBlack

标签: C++ 算法 LeetCode 链表

每日算法——leetcode系列


问题 Merge Two Sorted Lists

Difficulty: Easy

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

/**
 * 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) {
        
    }
};

翻译

合并两个有序链表

难度系数:简单

合并两个有序链表并返回一个新链表。新的链表的由两个有序的链表的节点组成。

思路

两种思考方式:

代码

class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        ListNode *p1 = l1,  *p2=l2;
        ListNode dummy(-1);
        dummy.next = p1;
        ListNode *tempLink = &dummy;
        
        while(p1 != nullptr && p2 != nullptr) {
            if (p1->val < p2->val) {
                tempLink = p1;
                p1 = p1->next;
            } else {
                tempLink->next = p2;
                p2 = p2->next;
                tempLink = tempLink->next;
                tempLink->next = p1;
            }
        }
        if (p2 != nullptr) {
            tempLink->next = p2;
        }
        
        return dummy.next;
    }
    
    ListNode* mergeTwoLists2(ListNode* l1, ListNode* l2) {
        ListNode *p1 = l1,  *p2=l2;
        ListNode dummy(-1);
        dummy.next = nullptr;
        ListNode *tempLink = &dummy;
        
         while(p1 != nullptr && p2 != nullptr) {
            if (p1->val < p2->val) {
                tempLink->next = p1;
                p1 = p1->next;
                tempLink = tempLink->next;
            } else {
                tempLink->next = p2;
                p2 = p2->next;
                tempLink = tempLink->next;
            }
        }
        if (p2 != nullptr) {
            tempLink->next = p2;
        } else if ( p1 != nullptr) {
            tempLink->next = p1;
        }
        
        return dummy.next;
    }

};
上一篇 下一篇

猜你喜欢

热点阅读