zoukankan      html  css  js  c++  java
  • LeetCode OJ: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.

    注意题目要求合并的时候不能新建节点,直接使用原来的节点,比较简单,代码如下:

     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         if(l1 == NULL) return l2;
    13         if(l2 == NULL) return l1;
    14         ListNode * root = new ListNode(-1);
    15         ListNode * helper = root;
    16         while(l1!=NULL && l2!=NULL){
    17             if(l1->val <= l2->val)
    18                 root->next = l1, l1=l1->next;
    19             else if(l1->val > l2->val)
    20                 root->next = l2, l2=l2->next;
    21             root = root->next;
    22         }
    23         while(l1!=NULL){
    24             root->next = l1;
    25             l1 = l1->next;
    26             root = root->next; 
    27         }
    28         while(l2!=NULL){
    29             root->next = l2;
    30             l2 = l2->next;
    31             root = root->next; 
    32         }
    33         return helper->next;
    34     }
    35 };
     1 public class Solution {
     2     public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
     3         ListNode helper = new ListNode(0);
     4         ListNode ret = helper;
     5         if(l1 == null) return l2;
     6         if(l2 == null) return l1;
     7         while(l1 != null && l2 != null){
     8             if(l1.val < l2.val){
     9                 helper.next = l1;
    10                 l1 = l1.next;
    11             }else{
    12                 helper.next = l2;
    13                 l2 = l2.next;
    14             }
    15             helper = helper.next;
    16         }
    17         while(l1 != null){
    18             helper.next = l1;
    19             l1 = l1.next;
    20             helper = helper.next;
    21         }
    22         while(l2 != null){
    23             helper.next = l2;
    24             l2 = l2.next;
    25             helper = helper.next;
    26         }
    27         return ret.next;
    28     }
    29 }
  • 相关阅读:
    [51nod] 1301 集合异或和
    [BZOJ] 1088: [SCOI2005]扫雷Mine
    [LUOGU] P4251 [SCOI2015]小凸玩矩阵
    8.21模拟赛
    [BZOJ] 3163: [Heoi2013]Eden的新背包问题
    [BZOJ] 1001: [BeiJing2006]狼抓兔子
    【NOIP2017提高A组冲刺11.8】好文章
    [BZOJ] 1520: [POI2006]Szk-Schools
    [BZOJ] 1877: [SDOI2009]晨跑
    day23(事务管理)
  • 原文地址:https://www.cnblogs.com/-wang-cheng/p/4934436.html
Copyright © 2011-2022 走看看