Void二进制递归函数,可添加值。C

问题描述 投票:1回答:1

我想写一个二进制递归函数,将双链路队列中的所有数据值相加。它必须是一个void函数。

我为一个返回整数值的函数写了下面的代码。

int add(Node * Front, Node * End)
{
    if(Front != Null)
    {
        if(Front == End)
             return front->data;

        if(Front->next == End) 
             return Front->data + end->data;

        Node * ptr1 = Front;
        Node * ptr2 = End;

        while (ptr1 != ptr2 && ptr1-> next != ptr2)
        {
             ptr1 = ptr1->next;
             ptr2 = ptr2->previous;
        }

        Node * mid = ptr1;
        return add(Front, mid) + add(mid->next, End)
    }
    else
        return 0;
}

这是双链队列中节点的结构。

 typedef struct Node {
    int data;
    Node *next;
    Node *previous;
 } Node;

我想知道,如果我用一个void函数添加队列中的值,代码应该如何改变。谢谢您 :)

c function recursion void doubly-linked-list
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.