leetcode [64] merge tow sorted lists

之前忘记记录这题了,现在补上。

合并两个有序的list,要求是:

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)

{

    if (l1 == NULL) return l2;

    if (l2 == NULL) return l1;

    ListNode *tmp = new ListNode(0);

    ListNode *head = tmp;

    while(l1 && l2)

    {

        if (l1 -> val <= l2 -> val)

        {

            tmp -> next = l1;

            tmp = l1;

            l1 = l1 -> next;

        }

        else

        {

            tmp -> next = l2;

            tmp = l2;

            l2 = l2 -> next;

        }

    }

    if (l1)

    {

        tmp -> next = l1;

    }

    else

    {

        tmp -> next = l2;

    }

    return head -> next;

}

};

 

你可能感兴趣的:(LeetCode)