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

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

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) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        if (l1 == NULL && l2 == NULL)            return NULL;                    ListNode *head = NULL;        ListNode *pre = NULL;        int flag = 0;                while(l1 && l2)        {            ListNode *node = new ListNode(l1->val + l2->val + flag);            flag = node->val / 10;            node->val %= 10;                        if (head == NULL)                head = node;            else                pre->next = node;                            pre = node;                        l1 = l1->next;            l2 = l2->next;        }                while(l1)        {            ListNode *node = new ListNode(l1->val + flag);            flag = node->val / 10;            node->val %= 10;                        if (head == NULL)                head = node;            else                pre->next = node;                            pre = node;                        l1 = l1->next;        }                while(l2)        {            ListNode *node = new ListNode(l2->val + flag);            flag = node->val / 10;            node->val %= 10;                        if (head == NULL)                head = node;            else                pre->next = node;                            pre = node;                        l2 = l2->next;        }                if (flag > 0)        {            ListNode *node = new ListNode(flag);            pre->next = node;        }                return head;    }};

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

你可能感兴趣的文章
Java 类加载机制详解
查看>>
IDEA使用技巧
查看>>
cookies的存值问题
查看>>
Sublime 解决目录显示为方块的问题
查看>>
spring MVC中页面添加锚点
查看>>
kettle-实现每个分组的前N的数据
查看>>
dotty编译器语法特性之一交叉类型,联合类型和文本单例类型
查看>>
TOUGHRADIUS 项目介绍
查看>>
-mysql-锁机制分为表级锁和行级锁
查看>>
openssh-在win7上的搭建
查看>>
linux nexus 使用问题
查看>>
SpringMVC
查看>>
PL/SQL的结构
查看>>
浮动与定位
查看>>
超完整的 Chrome 浏览器客户端调试大全
查看>>
阿里云使用笔记-Lrzsz上传下载文件-centos7
查看>>
Struts2、SpringMVC、Servlet(Jsp)性能对比 测试 。 Servlet的性能应该是最好的,可以做为参考基准,其它测试都要向它看齐,参照...
查看>>
web架构设计经验分享
查看>>
javascript函数,值得参考!
查看>>
微信小程序 悬浮按钮
查看>>