File tree Expand file tree Collapse file tree 4 files changed +134
-122
lines changed 
src/com/blankj/medium/_002 Expand file tree Collapse file tree 4 files changed +134
-122
lines changed Original file line number Diff line number Diff line change 4646
4747| #| Title| Tag| 
4848| :------------- | :------------- | :------------- | 
49- | 2| Add Two Numbers| Linked List, Math| 
49+ | 2| [ Add Two Numbers] [ 002 ] | Linked List, Math| 
5050| 8| [ String to Integer (atoi)] [ 008 ] | Math, String| 
5151| 19| [ Remove Nth Node From End of List] [ 019 ] | Linked List, Two Pointers| 
5252
9696[ 121 ] : https://github.com/Blankj/awesome-java-leetcode/blob/master/note/121/README.md 
9797[ 122 ] : https://github.com/Blankj/awesome-java-leetcode/blob/master/note/122/README.md 
9898
99+ [ 002 ] : https://github.com/Blankj/awesome-java-leetcode/blob/master/note/002/README.md 
99100[ 008 ] : https://github.com/Blankj/awesome-java-leetcode/blob/master/note/008/README.md 
100101[ 019 ] : https://github.com/Blankj/awesome-java-leetcode/blob/master/note/019/README.md 
102+ 
103+ [ 004 ] : https://github.com/Blankj/awesome-java-leetcode/blob/master/note/004/README.md 
Original file line number Diff line number Diff line change 1+ # [ Add Two Numbers] [ title ]  
2+ 
3+ ## Description  
4+ 
5+ 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.
6+ 
7+ You may assume the two numbers do not contain any leading zero, except the number 0 itself.
8+ 
9+ ** Input:**  (2 -> 4 -> 3) + (5 -> 6 -> 4)
10+ ** Output:**  7 -> 0 -> 8
11+ 
12+ ** Tags:**  Linked List, Math
13+ 
14+ 
15+ ## 思路  
16+ 
17+ 题意我也是看了好久才看懂,就是以链表表示一个数,低位在前,高位在后,所以题中的例子就是` 342 + 465 = 807 ` ,所以我们模拟计算即可。
18+ 
19+ ```  java 
20+ /** 
21+  * Definition for singly-linked list. 
22+  * public class ListNode { 
23+  * int val; 
24+  * ListNode next; 
25+  * ListNode(int x) { val = x; } 
26+  * } 
27+  */  
28+ class  Solution  {
29+  public  ListNode  addTwoNumbers (ListNode  l1 , ListNode  l2 ) {
30+  ListNode  node =  new  ListNode (0 );
31+  ListNode  n1 =  l1, n2 =  l2, t =  node;
32+  int  sum =  0 ;
33+  while  (n1 !=  null  ||  n2 !=  null ) {
34+  sum /=  10 ;
35+  if  (n1 !=  null ) {
36+  sum +=  n1. val;
37+  n1 =  n1. next;
38+  }
39+  if  (n2 !=  null ) {
40+  sum +=  n2. val;
41+  n2 =  n2. next;
42+  }
43+  t. next =  new  ListNode (sum %  10 );
44+  t =  t. next;
45+  }
46+  if  (sum /  10  !=  0 ) t. next =  new  ListNode (1 );
47+  return  node. next;
48+  }
49+ }
50+ ``` 
51+ 
52+ 
53+ ## 结语  
54+ 
55+ 如果你同我一样热爱数据结构、算法、LeetCode,可以关注我GitHub上的LeetCode题解:[ awesome-java-leetcode] [ ajl ] 
56+ 
57+ 
58+ 
59+ [ title ] : https://leetcode.com/problems/add-two-numbers 
60+ [ ajl ] : https://github.com/Blankj/awesome-java-leetcode 
Original file line number Diff line number Diff line change 1+ package  com .blankj .medium ._002 ;
2+ 
3+ import  com .blankj .structure .ListNode ;
4+ 
5+ import  java .util .Arrays ;
6+ 
7+ /** 
8+  * <pre> 
9+  * author: Blankj 
10+  * blog : http://blankj.com 
11+  * time : 2017/10/11 
12+  * desc : 
13+  * </pre> 
14+  */ 
15+ public  class  Solution  {
16+ 
17+  public  ListNode  addTwoNumbers (ListNode  l1 , ListNode  l2 ) {
18+ 
19+  }
20+ 
21+ 
22+  public  static  void  main (String [] args ) {
23+  Solution  solution  = new  Solution ();
24+ 
25+  System .out .println (Arrays .toString (solution .addTwoNumbers (nums , target )));
26+  }
27+ }
                         You can’t perform that action at this time. 
           
                  
0 commit comments