LeetCode之Add Two Numbers
问题描述
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.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
解题思路:就是实现两个链表依次相加,如果结果大于10,则进一位到后面
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { if (l1==null) return l2; if (l2==null) return l1; int carry=0; ListNode newhead = new ListNode(-1); ListNode l3=newhead; while(l1!=null||l2!=null) { if(l1!=null){ carry += l1.val; l1=l1.next; } if(l2!=null){ carry +=l2.val; l2=l2.next; } l3.next=new ListNode(carry%10); carry=carry/10; l3=l3.next; } if(carry==1) l3.next=new ListNode(1); return newhead.next; } }
代码来源http://www.cnblogs.com/springfor/p/3864493.html

浙公网安备 33010602011771号