C语言头插递归反向链表

尝试着用头插法去递归反向输出链表,但是没有输出

#include <stdio.h>
#include "string.h"
#include "stdlib.h"
typedef struct node {
    int data;
    struct node* next;
}Node;

int main() {
    struct node *newn = malloc(sizeof(struct node));
    struct node *newn2 = malloc(sizeof(struct node));
    newn->next = NULL;
    Push(&newn, 1);
    Push(&newn, 2);
    Push(&newn, 3);
    Push(&newn, 4);
    Push(&newn, 4);

    
    RecursiveReverse(&newn);//?
    printQueue(newn);
    return 0;

}

void Push(Node**headRef, int newData){


    Node *head = *headRef;
    struct node *newn = malloc(sizeof(struct node)); //
    newn->data = newData;
    newn->next = head;
    head = newn;

    *headRef = head;

}

void RecursiveReverse(Node**headRef){
    Node* head = *headRef;
    Node* newn;
    newn = head;
    if(newn->next !=NULL){
        RecursiveReverse(&(newn->next));
    }
    Node* newn2 = newn;
    while(newn->next != NULL){
        newn = newn->next;
    }
    head->next =NULL;
    newn->next = head;
    *headRef= newn2;
}

void printQueue(Node* l){
    while(l->next != NULL){//
        printf("data is %d\n", l->data);
        l = l->next;
    }
    printf("\n");
}

请问如何解决

没看到你定义的结构体代码,把代码补完整

push 函数是怎么写的

你这个push 函数有问题,变成死循环了

void Push(Node**headRef, int newData){ Node *head = *headRef; struct node *newn = malloc(sizeof(struct node)); // newn->data = newData; newn->next = head.next ; head = newn; *headRef = head; }

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632