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.
* Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ publicclass{ public ListNode addTwoNumbers(ListNode l1, ListNode l2){ ListNode ansListNode = null; ListNode head = null; int flag = 0; while (l1 != null || l2 != null) { int a = 0; if (l1 != null) a += l1.val; if (l2 != null) a += l2.val; a += flag; if (ansListNode == null) { ansListNode = new ListNode(a % 10); head = ansListNode; flag = a / 10; if (l1 != null) l1 = l1.next; if (l2 != null) l2 = l2.next; continue; }
else { ansListNode.next = new ListNode(a % 10); } flag = a / 10; ansListNode = ansListNode.next; if (l1 != null) l1 = l1.next; if (l2 != null) l2 = l2.next; }
while (flag > 0) { ansListNode.next = new ListNode(flag % 10); ansListNode = ansListNode.next; flag = flag / 10; } return head; } }
近期评论