zoukankan      html  css  js  c++  java
  • 【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 }
  • 相关阅读:
    Java关键字static、final使用小结
    JAVA的核心概念:接口(interface)
    Oracle数据泵导入导出数据,建立表空
    web.xml中load-on-startup的作用
    UIApplication 用法解析
    ios-Ineligible Devices 不被识别的设备
    Xcode真机测试could not find developer disk image解决方法
    异常捕获拒绝闪退 让应用从容的崩溃UncaughtExceptionHandler
    Xcode6之后创建Pch预编译文件
    MBProgressHUD的基本使用
  • 原文地址:https://www.cnblogs.com/sunshineatnoon/p/3778622.html
Copyright © 2011-2022 走看看