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;
}
};

 

posted on 2014-11-15 17:45  higerzhang  阅读(167)  评论(0编辑  收藏  举报