node *nodereverse(node *head)
{
//如果一个函数的输入参数有指针,一定要记住判断指针时候为空
//1>:在使用一个指针之前一定要判断它是否为空;
//2>:使用完后要释放由指针指向的存储单元
//3>:释放完存储单元后要将指针赋值为NULL;
node *p1,*p2,*p3;
if(head->next==NULL || head==NULL)
return head;
p1=head->next ;
p2=p1->next ;
p1->next = NULL ;
//要注意这里面的顺序,先将temp3保存在temp2中,
//然后再将temp3移动到下一个元素,然后才能改动temp2
//
while(p2!=NULL)
{
p3 = p2->next;
p2->next = p1;//不能再temp3= temp3->next;之前执行
p1 = p2;
p2 = p3;
}
head->next = p1;
return head;
}
{
//如果一个函数的输入参数有指针,一定要记住判断指针时候为空
//1>:在使用一个指针之前一定要判断它是否为空;
//2>:使用完后要释放由指针指向的存储单元
//3>:释放完存储单元后要将指针赋值为NULL;
node *p1,*p2,*p3;
if(head->next==NULL || head==NULL)
return head;
p1=head->next ;
p2=p1->next ;
p1->next = NULL ;
//要注意这里面的顺序,先将temp3保存在temp2中,
//然后再将temp3移动到下一个元素,然后才能改动temp2
//
while(p2!=NULL)
{
p3 = p2->next;
p2->next = p1;//不能再temp3= temp3->next;之前执行
p1 = p2;
p2 = p3;
}
head->next = p1;
return head;
}