国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Add Two Numbers問題及解法

2019-11-08 19:42:14
字體:
來源:轉載
供稿:網友

問題描述:

You are given two non-empty linked lists rePResenting two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

You may assume the two numbers do not contain any leading zero, except the number 0 itself.

示例:

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)Output: 7 -> 0 -> 8

以下是問題分析:

本題是將兩個數按照逆序存放在兩個鏈表里,然后求這兩個數的和,同樣以逆序的方式輸出為鏈表。此題中可能遇到的陷阱==》變量的生存周期問題(ListNode的某一變量在addTwoNumbers函數內使用,出了該范圍無效)。

以下是我按照普通套路些的代碼

ListNode* addTwoNumbers(ListNode* l1, ListNode* l2){		ListNode* res = l1,*temp;			int flag = 0;			int tempval;						while(l1 != NULL && l2 != NULL){				tempval = l1->val + l2->val + flag;				flag = tempval / 10;				tempval = tempval % 10;				l1->val = tempval;				temp = l1;				l1 = l1->next;				l2 = l2->next;			}			if(l1 == NULL){			    temp->next = l2;				l1 = l2;			}			while(l1 != NULL){				tempval = l1->val + flag;				flag = tempval / 10;				tempval = tempval % 10;				l1->val = tempval;				temp = l1;				l1 = l1->next;			}			if(flag){				ListNode * p = (ListNode *)malloc(sizeof(ListNode));				ListNode f(flag);				p->val = f.val;				p->next = f.next;				temp->next = p; 			}			return res;		}

歡迎小伙伴們一起探討~


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武乡县| 潞城市| 绿春县| 轮台县| 航空| 正宁县| 瑞丽市| 仁怀市| 临夏县| 祁连县| 垦利县| 万州区| 屯昌县| 盈江县| 永兴县| 新泰市| 绥芬河市| 白沙| 会理县| 东乡| 遂溪县| 沙坪坝区| 塘沽区| 连云港市| 韩城市| 新巴尔虎右旗| 沙田区| 繁峙县| 仁布县| 清河县| 新绛县| 日喀则市| 古浪县| 英吉沙县| 化德县| 延安市| 开化县| 柘荣县| 普安县| 工布江达县| 远安县|