# Leet Code : Add Two List – Java | CPP | Javascript | Python

You are given two non-empty linked lists that each represent a non-negative integer. The digits are kept in reverse order, with each node containing only one digit. Add the two numbers together and return the total as a linked list.

Except for the number 0 itself, you may presume that the two numbers do not have any leading zeros.

Eg 1:

```Input: l1 = [2,4,3], l2 = [5,6,4]
Output: [7,0,8]

Explanation: 342 + 465 = 807.

Example 2:

Input: l1 = [0], l2 = [0]
Output: [0]

Example 3:
Input: l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
Output: [8,9,9,9,0,0,0,1]```

## Solution:

CPP :

``````class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
int carry=0;
while(l1!=NULL || l2!=NULL || carry!=0)
{
int sum=0;
if(l1!=NULL)
{
sum+=l1->val;
l1=l1->next;
}
if(l2!=NULL)
{
sum+=l2->val;
l2=l2->next;
}
sum+=carry;
carry=sum/10;
ListNode* node=new ListNode(sum%10);
// to add the first node in the newly created list (head node)
{
continue;  //forwards the loop for further itreation before moving further
}

while(temp->next!=NULL)
{
temp=temp->next;
}
temp->next=node;
}
}
};
``````

Java

``````class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
int count = 1;
int carry = 0;
ListNode resultNode = new ListNode();
ListNode nextNode = resultNode;
while(l1 != null || l2 != null || carry != 0) {
int sum = carry;
if(l1 != null){
sum += l1.val;
l1 = l1.next;
}

if(l2 != null) {
sum += l2.val;
l2 = l2.next;
}

if(sum >9) {
carry = 1;
nextNode.val = sum - 10;
} else {
carry = 0;
nextNode.val = sum;
}
if(l1 != null || l2 != null || carry != 0) {
nextNode.next = new ListNode();
nextNode = nextNode.next;
}
}
return resultNode;
}
}``````

Python :

``````class Solution:
def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]:

tail=ListNode()

a=list()
b=list()
while(l1!=None):
a.append(l1.val)
l1=l1.next
while(l2!=None):
b.append(l2.val)
l2=l2.next
a.reverse()
b.reverse()
print(a)
print(b)
res=list()
carry=0
if(len(a)>=len(b)):
i=len(a)-1
j=len(b)-1
while(i>=0):
if j >=0:
s=a[i]+b[j]+carry
else:
s=a[i]+carry
if (s<10):
res.append(s)
carry=0
else:
res.append(s%10)
s=s//10
carry=s
i-=1
j-=1
if carry!=0:
res.append(carry)
print(res)

for i in range (0,len(res)):
temp=ListNode()

temp.val=res[i]
# print(temp.val)
temp.next=None

if i==0:
tail=temp
else:
tail.next=temp
tail=temp
print(tail.val)

elif(len(b)>=len(a)):
res=list()
carry=0
i=len(b)-1
j=len(a)-1
while(i>=0):
if j >=0:
s=a[j]+b[i]+carry
else:
s=b[i]+carry
if (s<10):
res.append(s)
carry=0
else:
res.append(s%10)
s=s//10
carry=s
i-=1
j-=1
if carry!=0:
res.append(carry)
print(res)

for i in range (0,len(res)):
temp=ListNode()

temp.val=res[i]
# print(temp.val)
temp.next=None

if i==0:
tail=temp
else:
tail.next=temp
tail=temp
print(tail.val)

Java Script:

``````var addTwoNumbers = function(l1, l2) {
const zeroNode = new ListNode();
let l3 = zeroNode;
let carry = 0;

while (l1 || l2) {
const value1 = l1?.val || 0;
const value2 = l2?.val || 0;
const sum = value1 + value2 + carry;
const value3 = sum % 10;

carry = Math.floor(sum / 10);

l1 = l1 ? l1.next : null;
l2 = l2 ? l2.next : null;
l3.next = new ListNode(value3);
l3 = l3.next;
}

if (carry) {
l3.next = new ListNode(carry);
}

return zeroNode.next;
};``````

### 4 thoughts on “Leet Code : Add Two List – Java | CPP | Javascript | Python”

1. Hello,

We can skyrocket your Google rankings in a short time with completely whitehat links and technical seo service.

Please check our profile on fiverr:

Please check tons of 5 star reviews on our Fiverr gig

2. Hi,

This AI content writer is less than \$90 one time payment for lifetime usage. You can write engaging articles, product descriptions, social media posts, emails, company bio, stories, ads, and 57 other content categories in minutes.

It is trained by Jasper AI data and 100M articles and scientific journals and uses the same tech (GPT3):

https://appsumo.8odi.net/Ao4BDo

3. Hi nileshblog.tech team,

I can rank your webpages on the first page (the top 3 rankings) of Google with on page and off page SEO service that follows Google guidelines. Never lose your rankings.

Monthly packages include:

On Page :

– Content Optimization
– Images optimization
– Meta Tags and H1,H2 Optimization
– Fix Broken Links or 404 Errors
– Create XML Sitemap
– Fix Canonical Issue
– Speed Optimization

Off Page:

– Omnichannel Marketing
– High quality backlinks from domains with real visitors

Let me know if you have any questions. Rank your webpages now.

4. Hi there,

I will develop a unique and bug-free top-level NFT website for you: NFT minting website, smart contract and web 3 integration

NFT minting functionality
Smart contract development (erc721, erc721a, erc1155)
Listing on Opensea and Rarible
Connect wallet functionality
NFT metadata generation ( art is provided by you )
Whitelist/Presale using merkle tree technology
Ability to mint directly with credit card

Blockchains:

Solana
Ethereum
Polygon
Binance Smart Chain
Avalanche

Website Frontend:

React JS / Next JS

Some reviews:

“By far one of the best developers, I have come across and went above and beyond to make sure that everything was perfect for our launch. Great communication and a will to do things the right way. Will definitely be using again and HIGHY RECCOMEND!”

“It’s my second time ordering from him I needed a front page for my website this time and Josiah did a stellar job with the UI and coding. If you’re looking for a detail-oriented dev who knows what he’s doing, this is definitely the place to go.”

“He did an amazing job for us, I can highly recommend him! He explained us everything and everything worked as described! If you search someone for your NFT project, do it with him!”