• 21合并两个有序链表


    目前我能想到的是最笨的办法,能以后想到更好的方法的时候在来继续做把

    题目描述:

    将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 

     

    示例:

    输入:1->2->4, 1->3->4
    输出:1->1->2->3->4->4

    遇到的错误:

     解决方法,把以下两句原本用分号连接的语句改为用逗号连接,错误得到解决

    错误原因分析:

    逗号前后两句话原本是用分号连接的,如果改成逗号错误就消失了。说明这两句话的关系是并列的,result为新申明的节点,将t指向result,避免result成为野指针。

    struct ListNode *result =(struct ListNode *)malloc(sizeof(struct ListNode));
    *t=result;
    

      最后显示通过

     代码:

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     struct ListNode *next;
     * };
     */
    
    struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){
    if(!l1)
       return l2;
    else if(!l2)
        return l1;
    struct ListNode *result =(struct ListNode *)malloc(sizeof(struct ListNode)),*t=result;
    while(l1&&l2)
    {
        if(l1->val<l2->val)
        {
            t->next=l1;
            l1=l1->next;
        }
        else{
            t->next=l2;
            l2=l2->next;
        }
        t=t->next;
    }
    if(l1)
       t->next=l1;
    else if(l2)
        t->next=l2;
    
    return result->next;
    
    
    }
    

      这个想法之前在学习数据结构的时候就想到过,只是基础知识不扎实所以写不出来,今天写出来的这个也是看了别人发的然后跟着练了一下而已。关于同类题目要多多总结,形成自己的方法

    主要问题:

    基础知识不扎实,声明链表节点的时候不会写。

  • 相关阅读:
    .net破解二(修改dll)
    CLR 的执行模型(2)
    理解数据库的几种键和几个范式
    事务隔离级别如何影响锁
    c#和java中封装字段的不同
    Linux安装AUTOCONF和AUTOMAKE产生的程序的一般步骤
    html锚点使用示例
    webbrowser控件使用时的注意事项
    C#实现单实例运行
    为Exchange 2007 SCC 启用 SCR 副本-供需要的人使用!
  • 原文地址:https://www.cnblogs.com/redzzy/p/13276301.html
Copyright © 2020-2023  润新知