File tree Expand file tree Collapse file tree
src/main/java/io/github/zebinh/algorithmJava/leetcode Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package io .github .zebinh .algorithmJava .leetcode ;
2+
3+ import java .util .List ;
4+
5+ /**
6+ * leetcode 第2题
7+ * 两数之和
8+ */
9+
10+
11+ class ListNode {
12+ int val ;
13+ ListNode next ;
14+
15+ ListNode (int x ) {
16+ val = x ;
17+ }
18+ }
19+
20+ public class AddTwoNumbers {
21+
22+ public ListNode addTwoNumbers (ListNode l1 , ListNode l2 ) {
23+ int sum = l1 .val + l2 .val ;
24+ ListNode head = new ListNode (sum % 10 );
25+ int highBit = sum / 10 ;
26+ ListNode newCur = head ;
27+ ListNode i = l1 .next ;
28+ ListNode j = l2 .next ;
29+ while (i != null && j != null ) {
30+ sum = i .val + j .val ;
31+ ListNode newNode = new ListNode ((sum +highBit ) % 10 );
32+ newCur .next = newNode ;
33+ newCur = newNode ;
34+ highBit = (sum + highBit ) / 10 ;
35+ i = i .next ;
36+ j = j .next ;
37+ }
38+ while (i != null ) {
39+ ListNode newNode = new ListNode ((i .val +highBit ) % 10 );
40+ newCur .next = newNode ;
41+ newCur = newNode ;
42+ highBit = (i .val +highBit ) / 10 ;
43+ i = i .next ;
44+ }
45+ while (j != null ) {
46+ ListNode newNode = new ListNode ((j .val +highBit ) % 10 );
47+ newCur .next = newNode ;
48+ newCur = newNode ;
49+ highBit = (j .val +highBit ) / 10 ;
50+ j = j .next ;
51+ }
52+ if (highBit == 1 ) {
53+ ListNode newNode = new ListNode (highBit );
54+ newCur .next = newNode ;
55+ }
56+ return head ;
57+ }
58+ }
You can’t perform that action at this time.
0 commit comments