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

LeetCode---2. 两数相加

时间:2020-02-04 20:31:13      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:nod   lis   表示   return   链表   class   size   div   数字   

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

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

示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807

 1 /**
 2  * Definition for singly-linked list.
 3  * struct ListNode {
 4  *     int val;
 5  *     struct ListNode *next;
 6  * };
 7  */
 8 
 9 
10 struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){
11     struct ListNode* p1 = l1;
12     struct ListNode* p2 = l2;
13     struct ListNode* p3 = NULL;
14     struct ListNode* sum = NULL;
15     struct ListNode* tempSum = NULL;
16 
17     unsigned short flag = 0;
18 
19     sum = (struct ListNode*)malloc(sizeof(struct ListNode));
20     sum->val = 0;
21     sum->next = NULL;
22     tempSum = sum;
23 
24     if ((p1 == NULL) && (p2 == NULL))
25     {
26         return sum;
27     }
28 
29     while ((p1 != NULL) || (p2 != NULL))
30     {
31         if (p1 != NULL)
32         {
33             tempSum->val += p1->val;
34             if (p1->next == NULL)
35             {
36                 p1 = NULL;
37             }
38             else
39             {
40                 p1 = p1->next;
41             }
42         }
43         if (p2 != NULL)
44         {
45             tempSum->val += p2->val;
46             if (p2->next == NULL)
47             {
48                 p2 = NULL;
49             }
50             else
51             {
52                 p2 = p2->next;
53             }
54         }
55 
56         flag = tempSum->val / 10;
57         tempSum->val = tempSum->val % 10;
58         
59         if(((p1 != NULL) || (p2 != NULL)) || (flag != 0))
60         {
61             p3 = (struct ListNode*)malloc(sizeof(struct ListNode));
62             p3->val = flag;
63             p3->next = NULL;
64             tempSum->next = p3;
65             tempSum = p3;
66         }
67     }
68 
69     return sum;
70 }

 

LeetCode---2. 两数相加

标签:nod   lis   表示   return   链表   class   size   div   数字   

原文地址:https://www.cnblogs.com/hhboboy/p/12260622.html

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