前言:
眼前你们对“c语言逆序输出链表”大致比较关切,你们都想要分析一些“c语言逆序输出链表”的相关文章。那么小编同时在网上收集了一些有关“c语言逆序输出链表””的相关内容,希望朋友们能喜欢,同学们一起来学习一下吧!需求描述:使用第三指针实现单链表逆序
typedef struct LinkNode { int val; struct LinkNode* next;}LinkNode;// 创建单链表void creatLinkList(LinkNode* head);//单链表逆序(用三个指针)void linkListReverseUse3Pointer(LinkNode** head);int main() { //创建单链表 LinkNode* head = (LinkNode*)malloc(sizeof(LinkNode)); if(head == NULL) {exit(-1);} head->next = NULL; LinkNode* curr = head; creatLinkList(curr); linkListReverseUse3Pointer(&(head->next)); LinkNode* firstNode = head->next; while (firstNode) { printf("%d ",firstNode->val); firstNode = firstNode->next; } printf("\n"); return 0; }#pragma mark - 链表逆序(用三个指针)void linkListReverseUse3Pointer(LinkNode** head) { if(head == NULL)exit(-1);//非法输入 if(*head == NULL)exit(-1);//空链表 if((*head)->next == NULL) exit(-1);//只有一个节点,无需反转 LinkNode* curr = (*head)->next; LinkNode* pre = *head; pre->next = NULL; while (curr != NULL) { LinkNode* q = curr->next; curr->next = pre; pre = curr; curr = q; } *head = pre;}
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #c语言逆序输出链表