在c语言中,如何将链表的第一个元素移动到最后一个元素?

在c语言中,如何将链表的第一个元素移动到最后一个元素?,c,list,linked-list,C,List,Linked List,我试图获取链表的第一个元素并将其移动到最后一个位置。我使用以下代码实现了这一点: pend=pstart; while(pend->next != NULL) // go to the last element { pend = pend->next; } pend->next=pstart; pend=

我试图获取链表的第一个元素并将其移动到最后一个位置。我使用以下代码实现了这一点:

            pend=pstart;
            while(pend->next != NULL) // go to the last element
            {
                pend = pend->next;
            }
            pend->next=pstart;
            pend=pstart;
            pstart=pstart->next;
            pend->next=NULL;

但我似乎错过了什么,因为我没有得到我想要的结果。所以,我的问题是:这个代码正确吗?如果没有,请帮我修一下。谢谢。

您的代码是正确的。你在别的地方搞砸了

        pend=pstart;
        while(pend->next != NULL) // go to the last element
        {
            pend = pend->next;
        }
        pend->next=pstart;
        pstart=pstart->next;
        pend->next->next= null;

解决此类问题的最佳方法是使用框(节点)和箭头(链接)绘制链表。

我认为您的代码是正确的。你能详细说明一下“我没有得到我想要的结果”吗?另外,需要更多的上下文来理解这个问题,a最好。对我来说是正确的。这看起来和OP的代码做的完全一样。而这个代码块可能会回答这个问题。请尝试在代码中添加相关解释,以改进您的答案。看见