Question:
You are given two linked lists representing two non-negative numbers. 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.
Input:(2 -> 4 -> 3) + (5 -> 6 -> 4)
Output:7 -> 0 -> 8
Anwser 1:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) {
// Start typing your C/C++ solution below
if(l1 == NULL && l2 == NULL) {
return NULL;
}
ListNode *retList = new ListNode(0);
ListNode *tmpList = retList;
ListNode *head1 = l1;
ListNode *head2 = l2;
int carry = 0;
while(head1 != NULL && head2 != NULL){
int sum = carry + head1->val + head2->val;
carry = sum / 10;
tmpList->next = new ListNode(sum % 10);
tmpList = tmpList->next;
head1 = head1->next;
head2 = head2->next;
}
while(head1 != NULL){
int sum = carry + head1->val;
carry = sum / 10;
tmpList->next = new ListNode(sum % 10);
tmpList = tmpList->next;
head1 = head1->next;
}
while(head2 != NULL){
int sum = carry + head2->val;
carry = sum / 10;
tmpList->next = new ListNode(sum % 10);
tmpList = tmpList->next;
head2 = head2->next;
}
if(carry == 1){
tmpList->next = new ListNode(1);
}
tmpList = retList;
retList = retList->next;
delete tmpList;
return retList;
}
};
Anwser 2:
分享到:
相关推荐
自己写的一个完整的程序,包括main函数,在VS上面提交通过,但是放到leetcode上面会出现问题;只是作为一个参考,一起学习学习0.o!解决的问题有:第一:两个链表的最后一个值相加后进位的问题;第二:两个链表的...
You are given two non-empty linked lists ... 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. java AC版本
java基础 java_leetcode 题解之 Add Two Numbers II.java
java基础 java_leetcode java题解之Add Two Numbers.java
leetcode:Add Two Numbers(java)
这个“python-leetcode面试题解之两数相加AddTwoNumbers.zip”压缩包聚焦于LeetCode中的一道经典面试题——"两数相加"(Add Two Numbers)。这道题主要考察的是链表操作和基本的计算逻辑。 题目描述:给定两个非空...
给你两个?非空 的链表,表示两个非负的整数。它们每位数字都是按照?逆序?的方式存储的,并且每个节点只能存储?一位?数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个...
c c语言_leetcode 0002_add_two_numbers.zip
手绘算法力扣 2 两数相加(Add Two Numbers)
c语言入门 c语言_leetcode题解02-add-two-numbers.c
js js_leetcode题解之-add-two-numbers.js
java入门 java_leetcode题解之002_Add_Two_Numbers
leetcode 2 和 c 2021-LeetCode-02_Add_...addTwoNumbers(_ l1: ListNode?, _ l2: ListNode?) -> ListNode? { guard l1 != nil && l2 != nil else { return nil } var resultTail = ListNode() let resultHead = resu
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 ...
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 ...
Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add up to the target, where...
2. Add Two Numbers 3. Longest Substring Without Repeating Characters 4. Median of Two Sorted Arrays 7. Reverse Integer 9. Palindrome Number 11. Container With Most Water 13. Roman to Integer 15. 3Sum ...
2. **Add Two Numbers (两数相加)**: 该问题是关于链表操作的,要求将两个非负整数表示为链表形式,然后将它们相加。这需要理解链表的结构,如节点、头结点、指针等,以及如何在链表上进行加法运算。C++中,我们可以...
Add the two numbers and return the sum as a linked list. You may assume the two numbers do not contain any leading zero, except the number 0 itself. Example 1: Input: l1 = [2,4,3], l2 = [5,6,4] Output...
* 添加两个数字(Add Two Numbers):将两个数字相加,并将结果以链表的形式返回。 * 反向整数(Reverse Integer):将整数反转。 * 字符串到整数(atoi)(String to Integer (atoi)):将字符串转换为整数。 2....