//只需要把所有的结点指针的方向逆置
//单链表的类定义
class List; //复合类定义
class ListNode //链表结点类
{
friend class List;
private :
int data; //结点数据,int 型
ListNode *next;//结点指针
};
class List { //链表类
private:
ListNode *first,*last; //表头和表尾指针
public:......
}
//下面的是算法
pr=0 p
h--->[][]--->[][]--->[][]--->[][0] //前一个为数值域后一个为指针域
if ( first == NULL ) return;
ListNode *p = h->next, *pr = NULL;
while ( p != NULL ) {
h->next = pr; //逆转first指针
pr = h; h = p; p = p->next ; //指针前移
}
h->next = pr;
ListNode *p, *head = new ListNode ( );
//创建表头结点, 其next域默认为NULL
while ( h != NULL ) {
p = h; h = h->next; //摘下first链头结点
p->next = head->next; head->next = p;//插入head链前端
}
h = head->next; delete head; //重置first, 删去表头结点
//我现在也搞不定 我再想想
--------------------next---------------------
阅读(1437) | 评论(0) | 转发(0) |