[LeetCode] 21. Merge Two Sorted Lists

来源:互联网 发布:mac鼠标如何点击右键 编辑:程序博客网 时间:2024/05/21 10:17

题目:https://leetcode.com/problems/merge-two-sorted-lists/description/

题目:

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.

思路:

两个链路合并,很简单的。
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 *rl = new ListNode(0);        ListNode *temp;        temp = rl;        while(l1!=NULL && l2 != NULL){            if(l1->val>l2->val){                temp->next = l2;                l2 = l2->next;                temp = temp->next;                temp->next = NULL;            }            else{                temp->next = l1;                l1 = l1->next;                temp = temp->next;                temp->next = NULL;            }        }        while(l1!=NULL){                temp->next = l1;                l1 = l1->next;                temp = temp->next;                temp->next = NULL;            }        while(l2!=NULL){                temp->next = l2;                l2 = l2->next;                temp = temp->next;                temp->next = NULL;            }                return rl->next;    }};

JAVA

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */class Solution {    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {        if(l1==null)    return l2;        if(l2==null)    return l1;        ListNode mergelist;        if(l1.val<l2.val){            mergelist = l1;            mergelist.next = mergeTwoLists(l1.next,l2);        }        else{            mergelist = l2;            mergelist.next = mergeTwoLists(l1,l2.next);        }        return mergelist;    }}




原创粉丝点击