每日一題--LeetCode 2(兩數相加)java
阿新 • • 發佈:2018-11-09
題目描述:
程式碼如下:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode ret=new ListNode(0); //記錄返回連結串列的頭結點 ListNode head=ret; int cur=0; do{ //計算位數之和 int num=(l1!=null?l1.val:0)+(l2!=null?l2.val:0)+cur; //計算餘數 int digit=num%10; //計算進位 cur=num/10; ret.val=digit; l1=l1!=null?l1.next:l1; l2=l2!=null?l2.next:l2; //判斷是否需要新增新節點 if(l1!=null||l2!=null||cur!=0){ ret.next=new ListNode(0); ret=ret.next; } //當兩個連結串列不為空或者還存在進位時,迴圈繼續 }while(l1!=null||l2!=null||cur!=0); //返回頭結點 return head; } }