zoukankan      html  css  js  c++  java
  • Leetcode 21 Merge Two Sorted Lists 链表

    合并两个已排序的链表,考到烂得不能再烂的经典题,但是很多人写这段代码会有这样或那样的问题

    这里我给出了我的C++算法实现

     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 && !l2) return l1;
    13         if(l2 && !l1) return l2;
    14         if( !l2 && !l1) return NULL; //保证所有列表不为空
    15         ListNode* t1 = l1;
    16         ListNode* t2 = l2;
    17         ListNode* t = NULL;
    18         if(t1->val < t2->val){  //确定表头t是l1还是l2
    19             t = t1;
    20             t1 = t1->next;
    21         }
    22         else{
    23             t = t2;
    24             t2 = t2->next;
    25         }
    26         for(;t1&&t2; t = t->next){//确定表头t的下一个元素
    27             if(t1->val < t2->val){
    28                 t->next = t1;
    29                 t1 = t1->next;
    30             }
    31             else{
    32                 t->next = t2;
    33                 t2 = t2->next;
    34             }
    35         }
    36         if(t1){//t1不为空,将l1剩余部分插入到t后
    37             t->next = t1;
    38         }
    39         if(t2){//t2不为空,将l2剩余部分插入到t后
    40             t->next = t2;
    41         }
    42         if(l1->val < l2->val) return l1;
    43         else return l2;//确定表头
    44     }
    45 };
  • 相关阅读:
    jsp开发环境搭建(windows64位)
    python环境和工具
    判断单链表是否有环及寻找环的入口
    Eclipse实用操作
    img标签在div里上下居中
    继承小结
    创建对象
    方法链、作用域链和原型链(三)——原型链
    python截取字符串
    在vscode上运行python
  • 原文地址:https://www.cnblogs.com/onlyac/p/5231541.html
Copyright © 2011-2022 走看看