单链表的反转
回顾题目戳这里 https://pintia.cn/problem-sets/15/problems/724
带头节点的反转代码
List Reverse( List L ){
List head = (List)malloc(sizeof(PtrToNode));
head->Next = NULL;
List cur = L,nNode;
while(cur){
nNode = cur->Next;
cur->Next = head->Next;
head->Next = cur;
cur = nNode;
}
L = head->Next;
return L;
} 不带头节点的反转代码
/*反转单链表*/
List Reverse( List L ){
List p1,p2;
p1 = L;
L = NULL;
while(p1){
p2 = p1;
// 指向原来链表的指针后移
p1 = p1->Next;
p2->Next = L;
L = p2;
}
return L;
} 总结
带头节点的思路简单,就是一个头插法构建单链表。 不带头节点的思路我有点迷,现在还没弄明白。😒

京公网安备 11010502036488号