【发布时间】:2016-05-14 04:30:36
【问题描述】:
问题是添加两个链表,就像添加整数一样。这是问题中的求和函数。
n1 和 n2 是两个链表的头节点,要加入到 l3 中。现在在这段代码中我不理解递归部分。
在像斐波那契或阶乘这样的正常递归中,我们在代码中有一个条件,说明递归应该何时结束。这里没有这样的条件。你能解释一下它是如何结束的吗?
int addNode(Node* n1,Node* n2,List* l3)
{
if(n1==NULL)
return 0;
int carry=addNode(n1->getNode(),n2->getNode(),l3);
int val=carry+n1->getdata()+n2->getdata();
int carry1=val/10;
int quot=val%10;
l3->prepend(quot);
return carry1;
}
【问题讨论】:
-
"我们在代码中有一个条件说明递归应该何时结束。这里没有这样的条件。"。这里是
if(n1==NULL) return 0;
标签: recursion linked-list