[求助] 逆转单链表的算法
如题,逆转单链表要怎么样实现呢,是不是用一个数组把 结点的数据部分存储起来,然后逆序依次填充到原来的 单链表的结点中呢
----------------解决方案--------------------------------------------------------
这个要动手自己画图,才会知道。
----------------解决方案--------------------------------------------------------
还是设置一个链栈,从头结点依次往内输入,让它先进去的结点最后出来,依次出入栈,但是这样有点麻烦,
我想找简单点的算法
----------------解决方案--------------------------------------------------------
较好做方法是,不变顺序表通过另的数组去改变顺序表内容也可。
----------------解决方案--------------------------------------------------------
对啊,我就是这么想的,可以利用类似冒泡的方法吗
----------------解决方案--------------------------------------------------------
不需要用到冒泡的方法,直接将数组倒转即可。
----------------解决方案--------------------------------------------------------
那是可以,但是如果我需要改变结点如何做呢,
----------------解决方案--------------------------------------------------------
呵呵,所以这个要画图,怎样将链表中指针配合好很重要。
----------------解决方案--------------------------------------------------------
void reverse_LList(node *head)
{
node *p,*q,*temp;
if(head == NULL){ cout << "空表" << endl; return ; }
p = head;
while(p->next != NULL)
{
q = p; //保存p结点
p = p->next; //进位
temp = p->next;//保存当前结点指针域
q = temp; //指向当前结点的前一个结点
q = q->next;//新结点进位
}
head = q;
return q
}
这样写有没有错的啊
----------------解决方案--------------------------------------------------------
逆转单链表的算法
只有guosheng1987说了单链表.
----------------解决方案--------------------------------------------------------