嗨,我需要做一个递归函数,接受输入列表的头,然后将每个节点之后的所有节点加到每个节点上。例如,如果列表是1-> 2-> 3,则列表将在6-> 5-> 3中进行修改。我做了一个迭代函数,效果很好,但是我不知道如何递归,您能帮上忙吗?这是一个迭代的:
int modify(node *head){
node **curr;
node *track = head;
int i;
while (track->next != NULL){
*curr = (track)->next;
while((*curr)->next != NULL){
track->val += (*curr)->val;
*curr = (*curr)->next;
}
track = track->next;
}
track = head;
while (track->next != NULL){
printf("%d ",track->val);
track = track->next;
}
printf("\n");
return head->val;
}
嗨,我需要做一个递归函数,接受输入列表的头,然后将每个节点之后的所有节点加到每个节点上。例如,如果列表是1-> 2-> 3,则该列表将在6-> ...
int modify(node *head){
if(!head) return 0;
head->val = modify(head->next)+head->val;
return head->val;
}