445. Add Two Numbers II - LeetCode

Question

445. Add Two Numbers IIjava

Solution

題目大意:兩個列表相加code

思路:構造兩個棧,兩個列表的數依次入棧,再出棧的時候計算其和做爲返回鏈表的一個節點ip

Java實現:leetcode

public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
    Stack<Integer> s1 = new Stack<>();
    Stack<Integer> s2 = new Stack<>();
    while (l1 != null) {
        s1.push(l1.val);
        l1 = l1.next;
    }
    while (l2 != null) {
        s2.push(l2.val);
        l2 = l2.next;
    }
    ListNode retHead = new ListNode(0);
    int pre = 0;
    while (!s1.empty() || !s2.empty() || pre > 0) {
        int tmp1 = s1.empty() ? 0 : s1.pop();
        int tmp2 = s2.empty() ? 0 : s2.pop();
        int sum = tmp1 + tmp2 + pre;
        pre = sum / 10;
        ListNode next = new ListNode(sum % 10);
        next.next = retHead.next;
        retHead.next = next;
    }
    return retHead.next;
}
相關文章
相關標籤/搜索