链表理解反转,需要注意是指针操作,操作之后新值改变,老值也会改变,所以链表值改变的时候会将前面的与后面断开,前面操作前将后续的复制一份出来!!!
struct ListNode*c = new ListNode(NULL);
struct ListNode*a = c;
struct ListNode*b = pHead;
struct ListNode*u = new ListNode(NULL);
while (b!=NULL)
{
u= b->next; //b必须复制出来,否则链表断裂,后续数据无法找到
//在此之后,可以操作自己想做的
//原因在于是指针。赋值之后新的改变也会改变原地址
//a->next = u;//会导致把代码给毁掉了 ,查找不到后续
b->next = a;//把代码给毁掉了
a = b;//将新b的内容,指针,都复制过来
b = u; //没有把地址连接起来 因此需要借助辅助中间链表
}
return a;