</pre><pre name="code" class="java">
import java.util.List; /** * Created by Cookies on 2015-01-04. * 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 */ public class AddTwoNumbers { public static void main(String[] args){ ListNode node1 = new ListNode(9); ListNode node2 = new ListNode(9); ListNode node3 = new ListNode(9); ListNode node4 = new ListNode(9); node1.next = node2; node3.next = node4; addTwoNumbers(node1,node3); } public static ListNode addTwoNumbers(ListNode l1,ListNode l2){ if (l1==null && l2==null) return null; if(l1==null || l2 == null){ return l1==null?l2:l1; } int addTemp = 0; int addUp = 0; addTemp = l1.val+l2.val; addUp = addTemp/10; ListNode head = new ListNode(addTemp%10); ListNode tempNode = head; l1 = l1.next; l2 = l2.next; while (l1!=null && l2!=null){ addTemp = l1.val+l2.val+addUp; addUp = addTemp/10; ListNode tempNode2 = new ListNode(addTemp%10); tempNode.next=tempNode2; l1 = l1.next; l2 = l2.next; tempNode = tempNode.next; } while (l1 !=null){ addTemp = l1.val+addUp; addUp = addTemp/10; ListNode tempNode2 = new ListNode(addTemp%10); tempNode.next=tempNode2; l1 = l1.next; tempNode=tempNode.next; } while (l2 !=null){ addTemp = l2.val+addUp; addUp = addTemp/10; ListNode tempNode2 = new ListNode(addTemp%10); tempNode.next=tempNode2; l2 = l2.next; tempNode=tempNode.next; } if(addUp>0){ ListNode nodeTemp = new ListNode(addUp); tempNode.next = nodeTemp; } return head; } }
Add Two Numbers Leetcode 链表相加
最新推荐文章于 2025-09-11 19:19:55 发布
