1. 程式人生 > >Leetcode2 Add Two Numbers

Leetcode2 Add Two Numbers

nbsp 技術 code png leetcode null 順序 for def

之前沒按順序做,發現原來第二題也是挺有做頭的,以後可以按順序先刷前150道。

/**
 * 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 firstNode = new
ListNode(0); ListNode pre = new ListNode(-1); ListNode p1=l1,p2=l2; int carrybit =0; //進位位,有進位設對應值,本題為1,無進位設為0 boolean isFirst = true; while(p1!=null||p2!=null||carrybit!=0) { //用例[5],[5],應輸出[0,1]結果得到[0],故增加判斷carrybit!=0 ListNode tempNode;
int temp=0; if(p1!=null&&p2!=null) { temp = p1.val+p2.val+carrybit; p1=p1.next;p2=p2.next; } else if(p1!=null&&p2==null) { temp = p1.val+carrybit; p1=p1.next; }
else if(p1==null&&p2!=null) { temp = p2.val+carrybit; p2=p2.next; } else{ temp = carrybit; } tempNode = new ListNode(temp%10); carrybit = temp/10; if(isFirst) {firstNode = tempNode;pre=firstNode;isFirst=false;} else {pre.next=tempNode;pre=tempNode;} } return firstNode; } }

技術分享圖片

Leetcode2 Add Two Numbers