LeetCode(2) 两数相加递归解法,速度最快,内存消耗最小

  • 一、

LeetCode第2题,两数相加递归解法,执行用时击败99.93%的用户,内存消耗击败94.26%的用户。

  • 二、递归代码
class Solution {
    int addValue = 0;
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        if(l1 == null && l2 == null && addValue != 0) 
            return l1 = new ListNode(1);
        if(l1 == null && l2 == null)
            return null;
        if(l1 == null){
            int temp = (l2.val + addValue)%10;
            addValue = (l2.val + addValue)/10;
            l2.val = temp;
            l2.next = addTwoNumbers(l1,l2.next);
            return l2;
        }
        if(l2 == null){
            int temp = (l1.val + addValue)%10;
            addValue = (l1.val + addValue)/10;
            l1.val = temp;
            l1.next = addTwoNumbers(l1.next,l2);
            return l1;
        }
        int temp = (l1.val + l2.val + addValue) % 10;
        addValue = (l1.val + l2.val + addValue) / 10;
        l1.val = temp;
        l1.next = addTwoNumbers(l1.next ,l2.next);
        return l1;
    }
}

 


版权声明:本文为Ge_zi327原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。