# 167.Add Two Numbers

## 1.Description(Easy)

You have two numbers represented by a linked list, where each node contains a single digit. The digits are stored in`reverse`order, such that the 1's digit is at the head of the list. Write a function that adds the two numbers and returns the sum as a linked list.

**Example**

Given`7->1->6 + 5->9->2`. That is,`617 + 295`.

Return`2->1->9`. That is`912`.

Given`3->1->5`and`5->9->2`, return`8->0->8`.

## 2.Code

We iterate over the linked list nodes in both lists, adding each digit together and keeping track of the

carry. If we have a carry at the end, we must make sure to add an extra node ad the end of the list

representing the carry digit

```
    if(l1==null && l2==null){
            return null;
        }

        ListNode dummy=new ListNode(0);
        ListNode current=dummy;
        int carry=0; //控制进位
        while(l1!=null && l2!=null){
            int sum=l1.val+l2.val+carry;//注意每次都要加上carry
            carry=sum/10;
            current.next=new ListNode(sum);

            l1=l1.next;
            l2=l2.next;
            current=current.next;
        }

        while(l1!=null){
            int sum=l1.val+carry;
            carry=sum/10;
            current.next=new ListNode(sum);

            l1=l1.next;
            current=current.next;
        }

        while(l2!=null){
            int sum=l2.val+carry;
            carry=carry/10;
            current.next=new ListNode(sum);

            l2=l2.next;
            current=current.next;
        }

        //最后判断下是否还有进位
        if(carry!=0){
            current.next=new ListNode(carry);
        }
        return dummy.next;
    }
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://junnie.gitbook.io/nine-chapter/5.linkedlist/167add-two-numbers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
