博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2. 两数相加
阅读量:6173 次
发布时间:2019-06-21

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

给定两个非空链表来代表两个非负数,位数按照逆序方式存储,它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。

你可以假设除了数字 0 之外,这两个数字都不会以零开头。

示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807
/** * 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) {        ListNode *ans = new ListNode(0);  //答案串             ListNode *head = ans;//记录一下答案串的首地址        int pos = 0; //标记进位        while (l1 && l2) {
//现将相同的位置加上 int cnt = l1 -> val + l2 -> val + pos; pos = cnt > 9 ? 1 : 0; ans -> val = cnt % 10; l1 = l1 -> next; l2 = l2 -> next; if (l1 && l2) { ans -> next = new ListNode(0); ans = ans -> next; } else { break; } } // 然后处理后边的数此时ans不是空的,而是指向最后一个节点 if (l1 == NULL && l2 == NULL) {
//加完了 if (pos) { ans -> next = new ListNode(0); ans = ans -> next; ans -> val = pos; } } else if (l1 == NULL) {
//第一个链表用完了 while (l2) {
//用完 ans -> next = new ListNode(0); ans = ans -> next; int cnt = l2 -> val + pos; pos = cnt > 9 ? 1 : 0; ans -> val = cnt % 10; l2 = l2 -> next; } if (pos) { ans -> next = new ListNode(0); ans = ans -> next; ans -> val = pos; } } else if (l2 == NULL) { while (l1) {
//用完 ans -> next = new ListNode(0); ans = ans -> next; int cnt = l1 -> val + pos; pos = cnt > 9 ? 1 : 0; ans -> val = cnt % 10; l1 = l1 -> next; } if (pos) { ans -> next = new ListNode(0); ans = ans -> next; ans -> val = pos; } } ans = head; return ans; }};

 

转载于:https://www.cnblogs.com/wuwangchuxin0924/p/8597371.html

你可能感兴趣的文章
【Tornado源码阅读笔记】tornado.web.Application
查看>>
js计数器方法setInterval()、clearInterval()、setTimeout()和clearTimeout()
查看>>
最优化问题的解法 - 动态规划
查看>>
数据显示,Edge 浏览器的市场份额有了小幅增长
查看>>
VUE2.0增删改查附编辑添加model(弹框)组件共用
查看>>
leetcode dynamic programming
查看>>
java接口调用——webservice就是一个RPC而已
查看>>
计算和数据,注定近在一起
查看>>
第36天:倒计时:发动短信验证、跳转页面、关闭广告
查看>>
WPF 自定义DateControl DateTime控件
查看>>
Oracle RAC中的几个IP
查看>>
我的博客的二维码
查看>>
一张图看懂互联网史上最大规模的公共云迁移案例
查看>>
Html标签列表【转】
查看>>
解析create-react-app
查看>>
用 Homebrew 带飞你的 Mac
查看>>
DataGrip 2019.1.1 发布,改进位置列引用
查看>>
用无人机打点作画,密集恐惧症患者慎入!
查看>>
Hutool 4.5.2 发布,点滴积累,感动人心
查看>>
Javascript动态执行JS(new Function与eval比较)
查看>>