博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二题:Add Two Numbers
阅读量:4054 次
发布时间:2019-05-25

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

题目链接:

这一题的意思是:将链表表示的两个数加起来,没什么好的办法,同时遍历两个链表就OK!需要注意进位问题!

具体的看代码:

class Solution {public:    ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) {        if (!l1)            return l2;        if (!l2)            return l1;        ListNode res(-1);        ListNode *tail = &res;        // 初始化进位=0        int carry = 0;        // 同时遍历两个链表        while (l1 && l2){            // 注意:计算相加值            ListNode *tmp = new ListNode((carry + l1->val + l2->val) % 10);            tail->next = tmp;            tail = tmp;            // 注意进位值            carry = (carry + l1->val + l2->val) / 10;            l1 = l1->next;            l2 = l2->next;        }        // 可能两个数的大小位数不一样,所以继续遍历        //        while (l1){            ListNode *tmp = new ListNode((carry + l1->val) % 10);            tail->next = tmp;            tail = tmp;            carry = (carry + l1->val) / 10;            l1 = l1->next;        }        while (l2){            ListNode *tmp = new ListNode((carry + l2->val) % 10);            tail->next = tmp;            tail = tmp;            carry = (carry + l2->val) / 10;            l2 = l2->next;        }        // 最后一位的进位需要特别注意!        //        if (carry){            ListNode *tmp = new ListNode(carry);            tail->next = tmp;        }        return res.next;    }};

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

你可能感兴趣的文章
Node.js中的事件驱动编程详解
查看>>
mongodb 命令
查看>>
MongoDB基本使用
查看>>
mongodb管理与安全认证
查看>>
nodejs内存控制
查看>>
nodejs Stream使用中的陷阱
查看>>
MongoDB 数据文件备份与恢复
查看>>
数据库索引介绍及使用
查看>>
MongoDB数据库插入、更新和删除操作详解
查看>>
MongoDB文档(Document)全局唯一ID的设计思路
查看>>
mongoDB简介
查看>>
Redis持久化存储(AOF与RDB两种模式)
查看>>
memcached工作原理与优化建议
查看>>
Redis与Memcached的区别
查看>>
redis sharding方案
查看>>
程序员最核心的竞争力是什么?
查看>>
Node.js机制及原理理解初步
查看>>
linux CPU个数查看
查看>>
分布式应用开发相关的面试题收集
查看>>
简单理解Socket及TCP/IP、Http、Socket的区别
查看>>