【leetcode】Merge Two Sorted Lists

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.


水题不解释,一A,代码如下:

 1 /**

 2  * Definition for singly-linked list.

 3  * struct ListNode {

 4  *     int val;

 5  *     ListNode *next;

 6  *     ListNode(int x) : val(x), next(NULL) {}

 7  * };

 8  */

 9 class Solution {

10 public:

11     ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {

12         ListNode* head;

13         if(l1 == NULL)

14             return l2;

15         if(l2 == NULL)

16             return l1;

17 

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

19         {

20             head = l1;

21             l1 = l1->next;

22         }

23         else

24         {

25             head = l2;

26             l2 = l2->next;

27         }

28         ListNode* current = head;

29         while(l1 != NULL && l2 != NULL){

30             if(l1->val < l2->val){

31                 current->next = l1;

32                 l1 = l1->next;

33                 current = current->next;

34             }

35             else

36             {

37                 current->next = l2;

38                 l2 = l2->next;

39                 current = current->next;

40             }

41         }

42         if(l1 != NULL)

43             current->next = l1;

44         if(l2 != NULL)

45             current->next = l2;

46         return head;

47     }

48 };

 Java版本代码:

 1 /**

 2  * Definition for singly-linked list.

 3  * public class ListNode {

 4  *     int val;

 5  *     ListNode next;

 6  *     ListNode(int x) {

 7  *         val = x;

 8  *         next = null;

 9  *     }

10  * }

11  */

12 public class Solution {

13     public ListNode mergeTwoLists(ListNode l1, ListNode l2) {

14         if(l1 == null)

15             return l2;

16         if(l2 == null)

17             return l1;

18         

19         ListNode head = null;

20         if(l1.val < l2.val)

21         {

22             head = l1;

23             l1 = l1.next;

24         }else{

25             head = l2;

26             l2 = l2.next;

27         }

28         

29         ListNode current = head;

30         while(l1 != null && l2 != null){

31             if(l1.val < l2.val){

32                 current.next = l1;

33                 l1 = l1.next;

34             }else{

35                 current.next = l2;

36                 l2 = l2.next;

37             }

38             current = current.next;

39         }

40         

41         if(l1 != null)

42             current.next = l1;

43         if(l2 != null)

44             current.next = l2;

45         

46         return head;

47     }

48 }

 

 

你可能感兴趣的:(LeetCode)