leetcode 2

就是链表的处理问题,注意细节即可

 1 /**
 2  * Definition for singly-linked list.
 3  * struct ListNode {
 4  *     int val;
 5  *     ListNode *next;
 6  *     ListNode(int x) : val(x), next(NULL) {}
 7  * };
 8  */
 9 class Solution {
10 public:
11     ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
12        int ok=0;
13        ListNode *pre,*l3=(struct ListNode *)malloc(sizeof(ListNode));
14        ListNode *start=l3;
15        while(l1!=NULL&&l2!=NULL) {
16           l3->val=l1->val+l2->val+ok;
17           ok=l3->val/10;
18           l3->val=l3->val%10;
19           pre=l3;
20           l3->next=(struct ListNode *)malloc(sizeof(ListNode));
21           l3=l3->next;
22           l1=l1->next;
23           l2=l2->next;
24        }
25        while(l1!=NULL) {
26           l3->val=l1->val+ok;
27           ok=l3->val/10;
28           l3->val=l3->val%10;
29           pre=l3;
30            l3->next=(struct ListNode *)malloc(sizeof(ListNode));
31           l3=l3->next;
32           l1=l1->next;
33        }
34        while(l2!=NULL) {
35         l3->val=l2->val+ok;
36           ok=l3->val/10;
37           l3->val=l3->val%10;
38           pre=l3;
39            l3->next=(struct ListNode *)malloc(sizeof(ListNode));
40          l3=l3->next;
41           l2=l2->next;
42        }
43        if(ok) {
44            l3->val=ok;
45            l3->next=NULL;
46        }
47        else {
48        pre->next=NULL;
49        free(l3);
50        }
51        return start;
52     }
53 };

 

posted @ 2016-07-22 10:07  HYDhyd  阅读(154)  评论(0编辑  收藏  举报