leetcode C++ 2. 兩數相加 給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,並且它們的每個節點只能存儲 一位 數字。 如果,我們將這兩個數

一、C++

ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
	ListNode *resList = new ListNode(-1);
	resList->val = -1;
	ListNode *nowNode = resList;
	int carry = 0;
	while (l1 != NULL) {
		int num1 = l1->val;
		int num2 = 0;
		if (l2 != NULL) {
			num2 = l2->val;
			l2 = l2->next;
		}
		int num = num1 + num2 + carry;
		if (resList->val == -1)
			resList->val = num % 10;
		else {
			ListNode *node = new ListNode(num % 10);
			nowNode->next = node;
			nowNode = node;
		}
		l1 = l1->next;
		carry = num / 10;
	}

	while (l2 != NULL) {
		int num = carry + l2->val;
		ListNode *node = new ListNode(num % 10);
		nowNode->next = node;
		nowNode = node;
		l2 = l2->next;
		carry = num / 10;
	}
	if (carry) {
		ListNode *node = new ListNode(carry);
		nowNode->next = node;
	}
	return resList;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章