国产探花免费观看_亚洲丰满少妇自慰呻吟_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;		}

歡迎小伙伴們一起探討~


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郸城县| 文安县| 石河子市| 丰县| 平原县| 扬州市| 绥宁县| 衡水市| 新巴尔虎左旗| 韶关市| 丹巴县| 兴和县| 乡城县| 岱山县| 普安县| 肇东市| 遂川县| 龙泉市| 中超| 连云港市| 张家界市| 正镶白旗| 温泉县| 嘉兴市| 永昌县| 景德镇市| 桦甸市| 天等县| 永靖县| 宝应县| 唐山市| 阿拉尔市| 大荔县| 竹北市| 抚州市| 宜君县| 当涂县| 富阳市| 东阿县| 内江市| 邓州市|