所以我正在学习处理链表。如何以递归方式在节点内添加项目。我可以通过执行sum = h.item +h.next.item+h.next.next.item
来添加它们,但这只有在我有一个小链表时才有用。以下是我的函数addAll尝试失败。
public class nodeP {
public static void main(String[] args) {
node H = new node(9);
H.next = new node(7);
H.next.next = new node(5);
System.out.println(addAll(H));
}
static int addAll(node h) {
int sum = 0;
if(h.next!=null) {
sum += h.item + addAll(h.next);
}
return sum;
}
}
答案 0 :(得分:2)
看起来您的代码不会添加最后一个节点。即使h.item
为h.next
,您也必须将null
添加到总和中。
尝试:
static int addAll(node h) {
int sum = h.item;
if (h.next != null) {
sum += addAll(h.next);
}
return sum;
}