zoukankan      html  css  js  c++  java
  • 连线法合并两个有序链表

    1.设置表头节点dummy的作用:统一循环内的操作;如果仅仅使用头指针head,则无法做到统一,必须单独写一个if判断

    2.使用已知的两个链表头指针l1、l2作为双指针

    3.从dummy节点出发,每次比较l1->val和l2->val的大小,小的被链接到rear上

    4.这种方法并没有破坏原有的两个链表,而是直接把他们拼接成了一个,既不用新开辟储存空间,也不用释放原来的空间。

    LinkCode题165:“合并两个排序链表”:

     1 /**
     2  * Definition of singly-linked-list:
     3  * class ListNode {
     4  * public:
     5  *     int val;
     6  *     ListNode *next;
     7  *     ListNode(int val) {
     8  *        this->val = val;
     9  *        this->next = nullptr;
    10  *     }
    11  * }
    12  */
    13 
    14 class Solution {
    15 public:
    16     /**
    17      * @param l1: ListNode l1 is the head of the linked list
    18      * @param l2: ListNode l2 is the head of the linked list
    19      * @return: ListNode head of linked list
    20      */
    21     ListNode * mergeTwoLists(ListNode * l1, ListNode * l2) {
    22         // write your code here
    23         ListNode q=ListNode(0);
    24         ListNode* dummy=&q;/*由于要求返回头指针,故将表头节点dummy创建在栈上避免内存泄漏*/
    25         ListNode* rear=dummy;
    26         while(l1!=nullptr&&l2!=nullptr){
    27             if(l1->val<l2->val){
    28                 rear->next=l1;
    29                 l1=l1->next;
    30             }else{
    31                 rear->next=l2;
    32                 l2=l2->next;
    33             }
    34             rear=rear->next;
    35         }
    36         rear->next=l1==nullptr?l2:l1;
    37         return dummy->next;
    38     }
    39 };
  • 相关阅读:
    学习python第二天数据库day1
    学习python第一天总纲
    Mac 键盘快捷键
    报错 Filtered offsite request
    mysql 顺序问题
    implode 把数组 组成一个字符串
    TP view中跳转到某个控制器
    生成商品的唯一货号
    数组排序
    判断文件是否存在 删除文件
  • 原文地址:https://www.cnblogs.com/is-xiaobai/p/13773943.html
Copyright © 2011-2022 走看看