自己实在是菜得可以,一个单链表反转到现在指来指去还弄不懂。
看到别人博客看到“断开”一词,茅塞顿开。把反转应该看做对两个链表的操作,一个增长着的链表,一个在减少。
写程序,主要是找到其中的“变着的不变量”,就像笋尖,一直是尖儿,却一直在生长。
node * reverse(node * head){
node *increase=NULL;
node *decrease=head;
node *tmp;
while(decrease!=NULL){
tmp=decrease->next;
decrease->next=increase;
increase=decrease;
decrease=tmp;
}
return increase;
}