单链表逆序问题(十万火急)

[复制链接]
查看11 | 回复1 | 2010-9-29 19:46:50 | 显示全部楼层 |阅读模式
各位大侠,作业是写一个单链表逆序的函数,我写了一个,但还存在问题,希望高手给改一下,谢谢了
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode * next;
}LNode;
int NIXU(LNode * head)
{
int *t;int *N;int *M;
LNode *p=head->next;
for(;p->next;)
{

t=p->next;

head->next;
p->next=p->next->next;

}
}

回复

使用道具 举报

千问 | 2010-9-29 19:46:50 | 显示全部楼层
这没逆序吧,就是把链表拆开了。。。最省事的方法是把指针指向调个个就行了。当然也可以首尾交换,逐渐折叠,因为是单向链表,查找复杂度比较大。。。int NIXU(LNode *head){LNode *rear = head->next->next->next; /*指向第三个节点*/LNode *pre = head->next; /*指向头节点*/LNode *cur = head ->next->next; /*指向第二个节点*//*原来的头节点变成尾节点*/pre->next = NULL; cur->next = pre; /*移动三个指针*/pre = cur;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行