单链表的反转
回顾题目戳这里 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; }
总结
带头节点的思路简单,就是一个头插法构建单链表。 不带头节点的思路我有点迷,现在还没弄明白。
原文地址:https://www.cnblogs.com/kyrie211/p/11193099.html
时间: 2024-10-06 09:32:51