Isshiki_Iroha 发表于 2020-11-22 09:57:52

单链表倒序问题

本帖最后由 Isshiki_Iroha 于 2020-11-22 18:07 编辑

struct listnode{
        char data;
        struct listnode *nextPtr;
};
typedef struct listnode ListNode;

void reverse(ListNode *sPtr)
{
        ListNode *Current;
        ListNode *New = NULL;
        ListNode *temp = New;
        Current = sPtr;
        while(Current != NULL)
        {
        headadder(&New,Current->data);
                Current = Current->nextPtr;
        }
        Current = sPtr;
        while(New !=NULL)
        {
                printf("%c --->",New->data);
                New = New->nextPtr;
        }
        printf("NULL\n\n");
}

void headadder(ListNode **Ptr, char value)
{
        ListNode *character, *temp;

        character = (ListNode *)malloc(sizeof(ListNode));

        character->data = value;

        if (*Ptr != NULL)
        {
                temp = *Ptr;
                *Ptr = character;
                character->nextPtr = temp;       
        }
        else
        {
                *Ptr = character;
                character->nextPtr = NULL;
        }
}

这里有结构体定义和两段子函数,sPtr是一个单链表,reverse函数将传进来的单链表sPtr逆向并创建新链表New来保存,现在的问题是如何将子函数创建的逆向单链表赋给sPtr。{:10_277:}

Isshiki_Iroha 发表于 2020-11-22 09:59:10

代码有些地方有点错位,不过问题不大
页: [1]
查看完整版本: 单链表倒序问题