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

链表-Add Two Numbers

时间:2016-03-04 00:15:13      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

第一版代码(很挫很罗嗦,不过是第一次做,记录一下成长的脚步!继续努力!)  

 1 /*struct ListNode {
 2      int val;
 3      struct ListNode *next;
 4 };*/
 5 
 6 typedef struct ListNode ListNode;
 7 
 8 struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {
 9     ListNode *result = (ListNode *)malloc(sizeof(ListNode));
10     result->next = NULL;
11     ListNode *now = result;
12 
13     ListNode *p1 = l1;
14     ListNode *p2 = l2;
15     int carry = 0;
16 
17     while(p1&&p2)
18     {
19         ListNode *p = (ListNode *)malloc(sizeof(ListNode));
20         p->next = NULL;
21         int r = p1->val + p2->val + carry;
22         carry = r/10;   
23         p->val = r%10;
24         now->next = p;  
25         now = now->next;
26         p1 = p1->next;
27         p2 = p2->next;
28     }
29 
30     while(p1)
31     {
32         ListNode *p = (ListNode *)malloc(sizeof(ListNode));
33         p->next = NULL;
34         int r = p1->val + carry;
35         carry = r/10;   
36         p->val = r%10;
37         now->next = p;  
38         now = now->next;
39         p1 = p1->next;
40     }
41 
42     while(p2)
43     {
44         ListNode *p = (ListNode *)malloc(sizeof(ListNode));
45         p->next = NULL;
46         int r = p2->val + carry;
47         carry = r/10;   
48         p->val = r%10;
49         now->next = p;  
50         now = now->next;
51         p2 = p2->next;
52     }
53     if(carry)
54     {
55         ListNode *p = (ListNode *)malloc(sizeof(ListNode));
56         p->next = NULL;
57         p->val = carry;
58         now->next = p;  
59         now = now->next;
60     }
61 
62     return result->next;
63     
64 }

要注意返回的内容必须符合题目要求,一开始我直接返回了result,但是leetcode测试的时候会把空的头结点也输出,不符合题目要求。

要全面考虑问题,这题的特殊情况主要体现在进位部分,如999+1这种情况,还有就是两个数的位数可能会不同。

【待补充C++版本。。。】

链表-Add Two Numbers

标签:

原文地址:http://www.cnblogs.com/summerkiki/p/5236193.html

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