循环链表中不能交换尾节点和首节点

问题描述

我遇到问题的函数void swapTailAndHead。我的链表结构只有一个指针 Node* tail

main.cpp:

void swapTailtoHead()
{
    if(tail == NULL)
        return;
    else if(justHaveTail())
    {
        return;
    }
    else if(countNode() == 2)
    {
        tail = tail->next;
    }
    else
    {
        Node* current = tail;
        while(current->next != tail)
            current=current->next;
        current->next = tail->next;
        tail = current->next;
        //std::cout<<current->data;
        tail->next = current->next->next;
        current = current->next->next;
    }
}

我的测试用例输入是 1 2 3 4 我的错误输出2 3 1

我希望交换节点不交换数据。 我的输入 1 2 3 4 而我希望我的输出4 2 3 1

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)