leetcode 第二題Add Two Numbers java
阿新 • • 發佈:2018-12-27
連結:http://leetcode.com/onlinejudge Add Two Numbers 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
思路:連結串列的操作,逐位相加並加上可能需要進位的數
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { int sum=0,append=0,left=0; ListNode root=new ListNode(0); ListNode result=root; while(l1!=null || l2!=null){ int v1=l1!=null?l1.val:0; int v2=l2!=null?l2.val:0; sum=v1+v2+append; append=sum/10; left =sum%10; ListNode cursor=new ListNode(left); result.next=cursor; result=cursor; if(l1!=null) l1=l1.next; if(l2!=null) l2=l2.next; } if(append>0){ ListNode cursor=new ListNode(append); result.next=cursor; } return root.next; } }