package Leetcode; /** * 题目: * 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. * You may assume the two numbers do not contain any leading zero, except the number 0 itself. *Example: * Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) * Output: 7 -> 0 -> 8 * Explanation: 342 + 465 = 807. */ public class AddTwoNumbers_1008 { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode temp1 = l1; ListNode temp2 = l2; ListNode result = null; ListNode current = null; int carray = 0; while (temp1 != null || temp2 != null || carray != 0) { //是否有进位 int sum = carray; //相加 sum += temp1 != null ? temp1.val : 0; sum += temp2 != null ? temp2.val : 0; carray = sum / 10; if (result == null) { result = new ListNode(sum % 10); current = result; } else { current.next = new ListNode(sum % 10); current = current.next; } temp1 = temp1 != null ? temp1.next : null; temp2 = temp2 != null ? temp2.next : null; } return result; } public static void main(String[] args) { ListNode node1 = new ListNode(2); ListNode node2 = new ListNode(4); ListNode node3 = new ListNode(3); node1.next = node2; node2.next = node3; ListNode node4 = new ListNode(5); ListNode node5 = new ListNode(6); ListNode node6 = new ListNode(4); node4.next = node5; node5.next = node6; AddTwoNumbers_1008 test = new AddTwoNumbers_1008(); ListNode result = null; result = test.addTwoNumbers(node1, node4); while (result != null){ System.out.print(result.val+" "); result = result.next; } } }
leetcode:Add Two Numbers(java)
猜你喜欢
转载自blog.csdn.net/Sunshine_liang1/article/details/82968981
今日推荐
周排行