码迷,mamicode.com
首页 > 其他好文 > 详细

2.两数相加

时间:2019-10-01 14:06:38      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:str   并保存   col   注意事项   链表   node   ddt   nod   color   

注意事项:

1.两链表长度不等时,要处理较长链表剩余的结点和高位

2.链表对应结点相加时增加前一个结点的进位,并保存下一个结点的进位;除法得进位,模得结果

3.如果最高位计算时还产生进位,则还需要添加一个额外结点。

4.创建新节点时主要*

 1  1 /**
 2  2  * Definition for singly-linked list.
 3  3  * struct ListNode {
 4  4  *     int val;
 5  5  *     ListNode *next;
 6  6  *     ListNode(int x) : val(x), next(NULL) {}
 7  7  * };
 8  8  */
 9  9 class Solution {
10 10 public:
11 11     ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
12 12         int carry = 0;
13 13         ListNode* result = NULL;  //注意*
14 14         ListNode* tmp = NULL;
15 15         while(l1 != NULL||l2 != NULL||carry != 0){
16 16             int sum = (l1 == NULL ? 0:l1->val) + (l2 == NULL ? 0:l2->val) + carry;  //注意判断列表是否为空
17 17             carry = sum / 10;
18 18             ListNode* node = new ListNode(sum % 10);  //创建新节点
19 19             if(tmp == NULL){      //判断是否为第一个结点
20 20                 tmp = node;
21 21                 result = tmp;
22 22             }else{
23 23                 tmp->next = node;
24 24                 tmp = tmp->next;
25 25             }   
26 26             l1 = l1 == NULL ? NULL : l1->next;    //注意判断是否到达链表结尾
27 27             l2 = l2 == NULL ? NULL : l2->next;
28 28         }
29 29         return result;
30 30     } 
31 31 };

 

2.两数相加

标签:str   并保存   col   注意事项   链表   node   ddt   nod   color   

原文地址:https://www.cnblogs.com/thefatcat/p/11615109.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!