博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Add Two Numbers
阅读量:6252 次
发布时间:2019-06-22

本文共 1797 字,大约阅读时间需要 5 分钟。

每日算法——letcode系列


Add Two Numbers

Difficulty: Medium

You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)

Output: 7 -> 0 -> 8

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {            }};

翻译

两链表对应数之和

难度系数:中等

给定两个由正整数组成的链表,数在链表中是倒序存放的,并且每个节点上的数是一位整数。把这两上链表上的数相加并返回一个链表

输入: (2 -> 4 -> 3) + (5 -> 6 -> 4)

输出: 7 -> 0 -> 8

思路

题中为什么说倒序,因为如果(2 -> 4 -> 3)看成一个数应该是243,如果跟(5 -> 6 -> 4)564相加应该得807,但由于是倒序放的,应该先从高位相加。

注意的是,题中没有说两个链表长度相同,我认为应该适应长度不相同的时候,还有就是相加后的链表有可能多一位。

代码

class Solution {public:    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {        if (l1 == nullptr && l1 == nullptr){            return nullptr;        }                ListNode* head = nullptr, **temp = &head;                int carry = 0;        while (l1 != nullptr || l2 != nullptr) {            int a = getValAndMoveToNext(l1);            int b = getValAndMoveToNext(l2);            int newVal = (a + b + carry) % 10;            carry = (a + b + carry) / 10;            ListNode* node = new ListNode(newVal);            *temp = node;            temp = &node->next;        }                // 最后当carrry大于0(为1)时,应该进一位        if (carry > 0){            ListNode* node = new ListNode(carry);            *temp = node;        }        return head;    }    private:    int getValAndMoveToNext(ListNode* &l){        if (l == nullptr){            return  0;        }                int x = 0;        x = l->val;        l = l->next;        return  x;    }};

转载地址:http://iffsa.baihongyu.com/

你可能感兴趣的文章
20. Spring Boot Servlet【从零开始学Spring Boot】
查看>>
让一个做了10PHPer的妹子员告诉你PHP7 的新特性的使用
查看>>
OPPO 立足国内放眼世界 寻求新的增长引擎
查看>>
Roadstar公司CTO衡量回应合伙人周光被开除:怎奈遇人不淑
查看>>
小米武汉总部开工雷军亲自出席:远期在汉要招上万人
查看>>
传贾跃亭将FF股份交给友人代持以规避失信人限制
查看>>
豆盟递交招股书:单季利润1394万 蓝标为第二大股东
查看>>
申小雨命案审理延期至3月5日 警方将翻译嫌犯口供
查看>>
第五届中欧文化艺术节开幕 谭盾“领衔”献艺
查看>>
财政部:2018年全国财政收入超18万亿元 同比增6.2%
查看>>
C罗失点 尤文图斯3:0切沃延续联赛不败纪录
查看>>
湖北整治清退非法码头 为长江“留白增绿”
查看>>
为什么要把网站升级到HTTPS
查看>>
【Hello CSS】序章-起源
查看>>
转行IT要趁早,多迪教育新就业数据告诉你真相
查看>>
JavaScript深入之参数按值传递
查看>>
Fragment总结
查看>>
Flutter进阶:深入探究 ListView 和 ScrollPhysics
查看>>
深入了解virtual dom
查看>>
spring事物应该注意的地方
查看>>