• leecode第二题(两数相加)


    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    #include <iostream>
    using namespace std;
    
    class Solution {
    public:
        ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
    
            if ((l1 == NULL) && (l2 == NULL))
            {
                cout << "Invalid input!";
                return NULL;
            }
    
            ListNode* fir = l1;
            ListNode* sec = l2;
            ListNode* p = new ListNode(0);
            ListNode* thr = p;//为了不干预原指针,我分别设了fir,sec,thr三个临时指针
    
            while (fir != NULL || sec != NULL)
            {
                int a = 0, b = 0;//分别检查fir,sec
                if (fir != NULL)
                {
                    a = fir->val;
                    fir = fir->next;
                }
                if (sec != NULL)
                {
                    b = sec->val;
                    sec = sec->next;
    
                }
    
                ListNode* cur = new ListNode(0);//设了个新节点
                cur->val = (thr->val + a + b) / 10;
                thr->val = (thr->val + a + b) % 10;
                if (fir == NULL && sec == NULL && cur->val == 0)//如果接下来没有数要加了,那就是最顶位为0,为了不让显示,我就直接跳出了,这个事当时恶心到我了
                    break;
                thr->next = cur;
                thr = cur;
            }
    
            return p;
    
        }
    };

    分析:

    考察链表和编程能力

    这个时间复杂度为O(max(m,n)),空间复杂度也是O(max(m,n))

    总结:

    编程还是不够熟练,循环里两个if没有第一时间想到,还有为了让顶位为0不显示,我居然写了好几遍,尴尬。

  • 相关阅读:
    Python3-接口自动化-6-unittest模块的各个属性说明
    Python3-接口自动化-5-JSON和字典的区别
    Python3-接口自动化-4-GET和POST请求
    Python3-接口自动化-3-接口自动化项目目录框架
    数据库2
    IO多路复用
    协程--代码注释篇
    协程--理论篇
    线程--代码注释篇
    线程--理论篇
  • 原文地址:https://www.cnblogs.com/CJT-blog/p/10571463.html
Copyright © 2020-2023  润新知