知识点:链表
因为链表存储的是倒序的数字,就比较好理解一些,我们只需要将节点依次相加,并考虑进位问题。具体来说,将两个链表节点的值和进位值相加,存储到新节点中,若超过十,则继续进位,表现在代码中就是在递归调用函数时,修改add参数,以传递进位关系。
Java题解如下
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* public ListNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param l1 ListNode类
* @param l2 ListNode类
* @return ListNode类
*/
public ListNode addEnergyValues (ListNode l1, ListNode l2) {
// write code here
return getValue(l1, l2, 0);
}
private ListNode getValue(ListNode l1, ListNode l2, int add) {
add += l1 == null? 0: l1.val;
add += l2 == null? 0: l2.val;
if(l1 == null && l2 == null && add == 0) {
return null;
}
ListNode node = new ListNode(add % 10);
add /= 10;
ListNode next1 = l1 == null? null: l1.next;
ListNode next2 = l2 == null? null: l2.next;
node.next = getValue(next1, next2, add);
return node;
}
}



京公网安备 11010502036488号