2. 两数相加

 1 class Solution 
 2 {
 3 public:
 4     ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) 
 5     {
 6         ListNode* dummy = new ListNode(-1);
 7         ListNode* pre = dummy;
 8         int C = 0;//进位
 9         while(l1 || l2)
10         {
11             int val = (l1?l1->val:0) + (l2?l2->val:0) + C; //1、注意加括号
12             C = val / 10;
13             ListNode* temp_node = new ListNode(val % 10);
14             pre->next = temp_node;
15             pre = pre->next;
16             if(l1) l1 = l1->next;
17             if(l2) l2 = l2->next;
18         }
19 
20         if(C) pre->next = new ListNode(C); //2、最后注意处理进位C
21         return dummy->next;
22     }
23 };

 

posted @ 2020-03-15 18:10  Jinxiaobo0509  阅读(118)  评论(0)    收藏  举报